remove common elements of two arrays in jquery

前端 未结 4 1413
粉色の甜心
粉色の甜心 2021-01-18 03:54

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]

相关标签:
4条回答
  • 2021-01-18 04:24

    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]
    
    0 讨论(0)
  • 2021-01-18 04:25

    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]
    
    0 讨论(0)
  • 2021-01-18 04:36

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

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

    Demo

    0 讨论(0)
  • 2021-01-18 04:41

    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)
    
    0 讨论(0)
提交回复
热议问题