js数组对象去重

发布于 2022-09-12 04:35:50 字数 280 浏览 6 评论 0

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

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

对象1和3是一样的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

香橙ぽ 2022-09-19 04:35:50

用 Lodash 一个函数就能搞定 uniqWith
https://www.lodashjs.com/docs...

关键是找到计算相同的算法,如果没啥特别的,用 Lodash 的 isEquals 也挺方便
https://www.lodashjs.com/docs...

import _ from "lodash";

const result = _.uniqWith(arr, _.isEqual);

补充个参考链接2020-09-17数组去重(JavaScript 为例)

乞讨 2022-09-19 04:35:50
let result = [...new Set(arr.map(v => JSON.stringify(v)))].map(v => JSON.parse(v));
素手挽清风 2022-09-19 04:35:50

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

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

廻憶裏菂餘溫 2022-09-19 04:35:50
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))
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文