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]
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]
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]
You can filter array A by checking its elements position in array B:
C = A.filter(function(val) {
return B.indexOf(val) == -1;
});
Demo
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)