JS对象数组去重简单有效⽅法I.输⼊
JS对象数组去重是业务经常遇到的⽅法,稍微简洁⼀点的⽅法,如下:
var data =[
{"id":1,"name":"李四1"},
{"id":1,"name":"李四2"},
js数组方法总结
{"id":1,"name":"李四3"},
{"id":1,"name":"李四1"},
{"id":5,"name":"李四5"},
];
P.去重⽅法(JS版本)
function ArrSet(Arr, id){
var obj ={};
const arrays = duce((setArr, item)=>{
obj[item[id]]?'': obj[item[id]]=true&& setArr.push(item);
return setArr;
},[]);
return arrays;
}
console.log(ArrSet(data,'id'));
console.log(ArrSet(data,'name'));
P.去重⽅法(TS版本)
function ArrSet(Arr:any[], id:string):any[]{
let obj: Object ={}
const arrays = duce((setArr, item)=>{
obj[item[id]]?'':(obj[item[id]]=true&& setArr.push(item))
return setArr
},[])
return arrays
}
O.打印台结果
总结:思路分析
reduce()是数组的并归⽅法,其接受四个参数。
reduce(上⼀个并归值,当前项,当前项的索引,数组本⾝)
例:使⽤reduce()函数执⾏累加数组中所有数组的操作
let values =[1,2,3,4,5,6];
let sum = duce((prev, cur, index, array)=> prev + cur);
console.log(sum)// 打印出21
显然函数每次迭代返回prev + cur,然后prev + cur 成为下⼀次的prev值来进⾏迭代,最终返回的就是(1+ 2) + 3) + 4) + 5) + 6的过程。最后返回归并结果。
*注:⽅法reduce()还有⼀个类似⽅法reduceRight(),只是⽅向相反,并没有别的不同。
参考⽂献
[1] JavaScript⾼级程序设计(第四版)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。