两个json 去重

发布于 2022-09-06 11:14:34 字数 195 浏览 18 评论 0

a = [{ "id": "1231" }, { "id": "9387" }, { "id": "68433" }, { "id": "43566" }]
b = [{ "id": "1231" }, { "id": "43566" }]
预期结果为 c = [{ "id": "9387" }, { "id": "68433" }]

求教大神

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

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

发布评论

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

评论(5

素染倾城色 2022-09-13 11:14:35

提供一个思路,把两个数组连接成一个数组,然后就是对数组的去重了。

let a = [{ "id": "1231" }, { "id": "9387" }, { "id": "68433" }, { "id": "43566" }]
let b = [{ "id": "1231" }, { "id": "43566" }]

let obj = [...a, ...b].reduce((obj, val) => {
  let str = JSON.stringify(val)
  obj[str] = obj[str] ? ++obj[str] : 1
  return obj
}, {})

let c = Object.keys(obj).filter(key => obj[key] === 1)
烟─花易冷 2022-09-13 11:14:35

如果题主去重是要把相同的从两边都删掉,以多的为准的话,就是下面这样:如果 key 可能为 对象的话,还需要做JSON.stringify 处理,有问题留言

let a = [{ "id": "1231" }, { "id": "9387" }, { "id": "68433" }, { "id": "43566" }];
let b = [{ "id": "1231" }, { "id": "43566" }];


function uniqueArr(arrA, arrB, key) {
    let bigArr = arrA.length > arrB.length ? arrA : arrB,
        smallArr = arrA.length <= arrB.length ? arrA : arrB;
    smallArrData = smallArr.map((obj, index) => obj[key]);
    return bigArr.filter((obj, index) => smallArrData.indexOf(obj[key]) === -1);
}

console.log(uniqueArr(a, b));
一紙繁鸢 2022-09-13 11:14:35

@luozz 图片描述

麻烦你看下

ˉ厌 2022-09-13 11:14:34

我写了一个方法,用到了ES6,你直接复制执行便可看到效果,希望能帮助到你:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>tab</title>
</head>
<body>
    <script>
        let a = [{
            "id": "1231"
        }, {
            "id": "9387"
        }, {
            "id": "68433"
        }, {
            "id": "43566"
        }];
        let b = [{
            "id": "1231"
        }, {
            "id": "43566"
        }];
        let c = a.filter((value) => {
            for (let k in b) {
                if (value.id === b[k].id) {
                    return false;
                }
            }
            return value;
        });
        console.log(c);
    </script>
</body>
</html>
叹沉浮 2022-09-13 11:14:34
var a = [{ "id": "1231" }, { "id": "9387" }, { "id": "68433" }, { "id": "43566" }],
b = [{ "id": "1231" }, { "id": "43566" }],
c = a.filter(function(o) {
  return b.every(function(e){
    return o.id !== e.id;
  });
});
alert(JSON.stringify(c));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文