摘要:当前元素当前元素的索引可选当前元素所属的数组对象可选第一次为初始值,之后为上一次累加结果,当前要累加得元素利用为数组中对象去重小明小张小李小孙小周小陈
被问到如何给数组中对象去重,想到set答案肯定错误的,这个平时工作中用到的不多,查阅资料,找到给数组中对象去重的方法,利用对象属性名的唯一性,怪自己当时没想到。
方法一:
let ary=[ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name: "小李"}, {id: 3, name: "小孙"}, {id: 1, name: "小周"}, {id: 2, name: "小陈"}, ]; var result = []; var obj = {}; ary.forEach((ele,index)=>{ if(!obj[ele.id]){ result.push(ele); obj[ele.id]=true; } }); //console.log(result)
方法二:用数组的reduce()方法(累加器)
redeuce()参数:回调函数,传递给函数初始值(可选)
回调函数的参数:
1:初始值, 或者计算结束后的返回值。
2:当前元素
3:当前元素的索引(可选)
4:当前元素所属的数组对象(可选)
let arys=[1,2,3]; //curs第一次为初始值1,之后为上一次累加结果3, //next当前要累加得元素 var a=arys.reduce((curs,next)=>{ // console.log(next) //1+2 //3+3 return curs+next; }); //console.log(a);//6
利用redeuce()为数组中对象去重
let ary=[ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name: "小李"}, {id: 3, name: "小孙"}, {id: 1, name: "小周"}, {id: 2, name: "小陈"}, ]; let obj = {}; ary=ary.reduce((curs,next)=>{ obj[next.id]?"":obj[next.id]=true&& curs.push(next); return curs; },[]);
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/100901.html
摘要:基本操作数组去重数组去重的方法临时数组保存其实这里面还没考虑到数组里面嵌套数组对象的情况把去重后的结果放在一个临时数组中对原来数组的元素与临时数组元素比较临时数组中不存在这个元素的放入临时数组。 js基本操作-数组去重 数组去重的方法 1. 临时数组保存(其实这里面还没考虑到数组里面嵌套数组/对象的情况) 把去重后的结果放在一个临时数组中, 对原来数组的元素与临时数组元素比较, 临时...
摘要:中的数组去重问题,被讨论都快烂掉了。,法,根据对象的属性不存在相同的特点,有点类似方法。同理这四个值都会被认为是一样的而被去重。 js中的数组去重问题,被讨论都快烂掉了。网上也有很多方法,不过都大同小异,复制来复制去的。当然这里不是讨论我是不是有什么新方法了,没有,只是在实践的时候发现一些问题,值得拿出来说说!去重的思路有几种 1,第一个与后面所有的比较,发现重复的就删除掉,再取第二个...
阅读 3241·2021-10-13 09:39
阅读 2007·2021-09-27 13:36
阅读 3069·2021-09-22 16:02
阅读 2593·2021-09-10 10:51
阅读 1574·2019-08-29 17:15
阅读 1529·2019-08-29 16:14
阅读 3495·2019-08-26 11:55
阅读 2544·2019-08-26 11:50