请问大家,这个小算法怎么处理

var arr1 = ['27709', '29406', '29407', '29408', '29409', '29410', '29411', '29412', '29414', '29415']

var arr2 = [
    {
        "goods_id": "29416",
        "goods_sn": "10088011100050",
        "goods_number": "105",
    },
    {
        "goods_id": "29417",
        "goods_sn": "10088011100059",
        "goods_number": "0",
    },
    {
        "goods_id": "29420",
        "goods_sn": "10088011100070",
        "goods_number": "0",
    },
    {
        "goods_id": "29424",
        "goods_sn": "10088011100081",
        "goods_number": "0",
    },
    {
        "goods_id": "29425",
        "goods_sn": "JX10088011100085",
        "goods_number": "0",
    },
    {
        "goods_id": "29426",
        "goods_sn": "10088011100090",
        "goods_number": "0",
    },
    {
        "goods_id": "29427",
        "goods_sn": "10088011100092",
        "goods_number": "0",
    },
    {
        "goods_id": "29428",
        "goods_sn": "10088011100094",
        "goods_number": "0",
    },
    {
        "goods_id": "29429",
        "goods_sn": "10088011100095",
        "goods_number": "0",
    },
    {
        "goods_id": "29430",
        "goods_sn": "10088011100096",
        "goods_number": "0",
    },
    {
        "goods_id": "29416",
        "goods_sn": "10088011100050",
        "goods_number": "0",
    },
    {
        "goods_id": "29417",
        "goods_sn": "10088011100059",
        "goods_number": "0",
    },
    {
        "goods_id": "29420",
        "goods_sn": "10088011100070",
        "goods_number": "0",
    },
    {
        "goods_id": "29424",
        "goods_sn": "10088011100081",
        "goods_number": "0",
    },
    {
        "goods_id": "29425",
        "goods_sn": "10088011100085",
        "goods_number": "0",
    },
    {
        "goods_id": "29426",
        "goods_sn": "10088011100090",
        "goods_number": "0",
    },
    {
        "goods_id": "29427",
        "goods_sn": "10088011100092",
        "goods_number": "0",
    },
    {
        "goods_id": "29428",
        "goods_sn": "10088011100094",
        "goods_number": "0",
    },
    {
        "goods_id": "29429",
        "goods_sn": "10088011100095",
        "goods_number": "0",
    },
    {
        "goods_id": "29430",
        "goods_sn": "10088011100096",
        "goods_number": "0",
    }
]

上面两个数组,

我想根据arr1数组里的数字,去和arr2中的goods_id 进行匹配,如果arr1的数组数字有和arr2中的goods_id 相等的话,就过滤掉这些相等的数据,返回出不相等数据,请问该怎么写,

阅读 2.3k
4 个回答
var arr3 = arr1.filter((item) => !arr2.some((i) => i.goods_id === item));
console.log(arr3);
function filter(data, id) {
    var ret = []
    loop: for (var i = 0; i < data.length; ++i) {
        for (var j = 0; j < id.length; ++j) {
            if (data[i].goods_id === id[j]) {
                continue loop;
            }
        }
        ret.push(data[i]);
    }
    return ret;
}
console.dir(filter(arr2, arr1));

用arr2过滤arr1

arr1.filter(id => !arr2.some(item => item.goods_id === id))
var arr3 = new Set(arr1)
arr2.filter(i => !arr3.has(i.goods_id))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题