js数组对象去重

 let arr = [
    {
        pk:'1',
        name:'张',
        age:'13'
    },
    {
        pk:'2',
        name:'张',
        age:'23'
    },
    {
        pk:'1',
        name:'张',
        age:'13'
    }
    ]

有什么快捷的方式可以去除数组里一模一样的对象吗?

对象1和3是一样的

阅读 2.8k
4 个回答
let result = [...new Set(arr.map(v => JSON.stringify(v)))].map(v => JSON.parse(v));

sliceArr(arr) {
let obj = {};
return (arr = arr.reduce((item, next) => {
obj[next.pk] ? '' : (obj[next.pk] = true && item.push(next)); return item;
}, []));
}

数组去重的你可以看看我这篇文章数组去重,上面写的这个就是我文章里记录的第七种方法,不足之处,欢迎指正。

let obj = {},
    arrNew = [],
    arr = [
    {
        pk:'1',
        name:'张',
        age:'13'
    },
    {
        pk:'2',
        name:'张',
        age:'23'
    },
    {
        pk:'1',
        name:'张',
        age:'13'
    }
    ];
for(let i of arr){
    let sy = JSON.stringify(i)
    if(!obj[sy]){
      obj[sy] = true;
      arrNew.push(JSON.parse(sy))
    }
}
推荐问题
宣传栏