ES6中对象数组根据属性去重的方法

2019-07-25  本文已影响0人  who_are_you_
let data = [
   {id:1,name:'obj'},
   {id:3,name:'string'},
   {id:2,name:'arr'},
   {id:1,name:'string'}
 ];
// 根据对象中的属性进行去重
function filterArr(arr, name) {
    let hash = {};
     return arr.reduce((ss, item) => {// reduce累计器, ss是具体满足条件后返回的数据, item是数组依次循环的每一项
        hash[item[name]] ? '' : hash[item[name]] = true && ss.push(item);
        // 1、判断对象的键值是否存在
        return ss;
    }, []);
}
let arr2 = filterArr(data, 'id');
console.log(arr2);

结果如下,封装好的

image.png
上一篇 下一篇

猜你喜欢

热点阅读