来源:YY软件园 更新:2023-12-08 06:01:18
用手机看
对象数组去重,这是每个程序员都会遇到的问题。今天,我要和大家分享一下我亲身经历的三种方法,希望能对你有所帮助。
方法一:使用Set进行去重
在处理对象数组去重时,我最常用的方法就是使用Set。Set是ES6中新增的数据结构,它可以自动过滤掉重复的元素。具体操作如下:
javascript const arr =[{id:1, name:'Alice'},{id:2, name:'Bob'},{id:1, name:'Alice'}]; const uniqueArr = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse); console.log(uniqueArr);
通过将对象转换为JSON字符串,并利用Set自动过滤掉重复项,最后再将JSON字符串转换回对象,我们就可以得到一个去重后的数组。
方法二:使用reduce进行去重
除了使用Set,我们还可以利用reduce方法进行对象数组去重。reduce方法接收一个回调函数和初始值作为参数,在每次迭代时将回调函数的返回值作为下一次迭代的初始值。具体操作如下:
javascript const arr =[{id:1, name:'Alice'},{id:2, name:'Bob'},{id:1, name:'Alice'}]; const uniqueArr = arr.reduce((acc, cur)=>{ const isExist = acc.find(item => item.id === cur.id); if (!isExist){ acc.push(cur); return acc; },[]); console.log(uniqueArr);
在每次迭代时,我们使用find方法判断当前元素是否已存在于累加器中,如果不存在则将其添加到累加器中。最后得到的累加器就是一个去重后的数组。
tokenpocket钱包最新版:https://ynldfybjy.com/yingyong/8933.html