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

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容