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

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

时间2025-09-16 17:10:49分类IT科技浏览4902
导读:有多种实现方式:...

有多种实现方式:

一                、使用 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
怎么提升网站关键词排名(提升网站排名的绝佳法宝——SEO关键词排名攻略) expiorer.exe(ezejmnap.exe进程安全吗 ezejmnap是什么进程)