You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中基于字符串片段对数组去重并提取指定URL部分?

解决方法:提取主页面URL并去重

嘿,这个需求很清晰呀,咱们分两步就能搞定:先把每个URL里的主页面部分提出来,再去重就好啦。直接上代码和详细解释:

实现代码

var array= [ 'http://www.example.com/page1/#comment-1234', 'http://www.example.com/page1/#comment-98733', 'http://www.example.com/page1/#comment-4298312', 'http://www.example.com/page2/#comment-2143' ];

// 1. 提取每个URL的主页面地址(去掉#及后面的锚点内容)
const mainPageUrls = array.map(url => url.split('#')[0]);

// 2. 利用Set去重,再转回数组
const uniqueMainPages = [...new Set(mainPageUrls)];

console.log(uniqueMainPages); 
// 输出结果: ['http://www.example.com/page1','http://www.example.com/page2']

关键步骤说明

  • 提取主页面:用split('#')[0]把每个URL按#分割成两部分,取第一个元素就是不带锚点的主页面地址——哪怕有些URL后面没有#,这个方法也能正常工作,兼容性拉满。
  • 去重操作:JavaScript的Set对象本身会自动过滤重复值,把提取后的数组放进Set里,再用扩展运算符...把Set转回数组,就能得到唯一的主页面列表了。这种方式比传统的filter+indexOf写法更简洁高效,数组越大优势越明显。

如果需要兼容不支持ES6语法的老旧浏览器,也可以用这种传统去重方式:

const uniqueMainPages = mainPageUrls.filter((url, index) => mainPageUrls.indexOf(url) === index);

内容的提问来源于stack exchange,提问作者spaceman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:28:45