首页IT科技js 数组 去重(JavaScript实现数组对象去重)

js 数组 去重(JavaScript实现数组对象去重)

时间2025-06-15 00:47:47分类IT科技浏览3667
导读:有多种实现方式:...

有多种实现方式:

一            、使用 Set 对象:

该方法会先创建一个 Set 对象            ,然后再使用 Array.from 方法将 Set 对象转换为数组                 ,因为 Set 对象不允许有重复的元素      ,所以这样可以实现去重的效果            。

但是         ,如果数组中的元素是对象                 ,Set 对象会识别为不同的元素         ,所以不能直接使用该方法                 。为了解决这个问题      ,你可以使用一个映射函数                 ,将数组中的对象映射为一个字符串或数字            ,然后再使用该方法      。

以下是一个具体的例子:

const arr = [ { id: 1, name: A }, { id: 2, name: B }, { id: 1, name: A }, { id: 3, name: C } ]; const result = Array.from(new Set(arr.map(item => JSON.stringify(item)))).map(item => JSON.parse(item)); console.log(result);

二                 、使用`reduce`方法:

const arr = [ { id: 1, name: A }, { id: 2, name: B }, { id: 1, name: A }, { id: 3, name: C } ]; const result = arr.reduce((pre, cur) => { var exists = pre.find(item => JSON.stringify(item) === JSON.stringify(cur)); if (!exists) { pre.push(cur); } return pre; }, []); console.log(result);

三      、使用`filter`方法

const arr = [ { id: 1, name: A }, { id: 2, name: B }, { id: 1, name: A }, { id: 3, name: C } ]; const result =arr.filter((item, index, self) => { return self.findIndex(t => JSON.stringify(t) === JSON.stringify(item)) === index; }); console.log(result);
声明:本站所有文章   ,如无特殊说明或标注                 ,均为本站原创发布         。任何个人或组织               ,在未征得本站同意时,禁止复制         、盗用                 、采集         、发布本站内容到任何网站      、书籍等各类媒体平台                 。如若本站内容侵犯了原著者的合法权益              ,可联系我们进行处理         。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
搬运视频如何赚钱(平台如何挣钱-无脑搬运 全平台短视频带货赚钱【零基础教程】) 企业网站优化技巧(企业网站优化主要包括哪三个层面)