js数组对象去重

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

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

对象1和3是一样的

阅读 2.9k
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))
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏