remove common elements of two arrays in jquery

2020-04-08 07:02发布

问题:

I want to remove common elements of two arrays in jquery. I have two arrays:

A = [0,1,2,3]
B = [2,3]

and result should be [0, 1].

Please help

回答1:

You can filter array A by checking its elements position in array B:

C = A.filter(function(val) {
 return B.indexOf(val) == -1;
});

Demo



回答2:

ES6 version of Milind Anantwar's answer. May require Babel.

const A = [1, 2, 3, 4];
const B = [2, 4];
const C = A.filter(a => !B.includes(a));
console.log(C) // returns [1, 3]


回答3:

Use the Set type from ES6. Then the spread operator to build an array from the Set. A Set type can only hold unique items.

const A = [1, 2, 3, 4];
const B = [2, 4];
const C = [...new Set(A,B)];

console.log(C);



(4) [1, 2, 3, 4]


回答4:

Checkout the library underscore.js.

Say you have two arrays,

var a = [0,1,2,3];
var b = [2, 3];

First find the union.

var all = _.union(a, b);

Then find the intersection.

var common = _.intersection(a, b);

The final answer should be the difference between the union, and the intersection.

var answer = _.difference(all, common)