2021-02-25

2021-02-25  本文已影响0人  你坤儿姐

ES6 Filter过滤普通数组

var a=[1,2,3,4,5]

var b=[2,3,7,8,9]

var arr = a.filter(item=>b.indexOf(item)==-1) //过滤掉两数组中相同的

var arr = a.filter(item=>b.indexOf(item)!=-1) //找出两数组中相同的

两对象数组中排除相同的

let arr1 = [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }];
        let arr2 = [{ id: 1 }, { id: 2 }, { id: 3 }];

        const all = [...arr1, ...arr2].reduce((all, n) => {
        n = JSON.stringify(n);
        all.set(n, (all.get(n) || 0) + 1);
        return all;
        }, new Map());

        // 找交集
        for(const dataset of all){
        const [key,num] = dataset;
        if(num > 1){
        const {id} = JSON.parse(key) ?? 0;
        arr1.splice(arr1.findIndex(item => item.id === id), 1)
        arr2.splice(arr2.findIndex(item => item.id === id), 1)
        }
        }
        console.log(arr1);  //[{id: 4},{id: 5}]
        console.log(arr2);  //[]
上一篇 下一篇

猜你喜欢

热点阅读