array.reduce()方法浅析:
array.reduce(function(total, currentValue, currentIndex, arr), initialValue);如示例所示:reduce()方法接受两个参数,第一个参数,是对数组进行操作的回调函数;
如我们可以利用该方法实现数组的求和:
[1,2,3,4,5].reduce(function(prev,next){
return prev+next;
});
reduce方法,对数组从左至右依次开始参与callback中的计算;
根据以上特性,我们可以利用该方法进行数组对象的去重:
示例:
function duplicate(arr,type){
if(arr.length===0){
return arr;
}else{
var obj={};
var newArray=arr.reduce((cur,next)=>{
obj[next[type]]?"":obj[next[type]]=true&&cur.push(next)
return cur
},[]);
return newArray
}
};
test:
var b=[{name:“timor”,age:10},{name:“tm”,age:12},{name:“tm”,age:10}];
duplicate(b,‘age’)