Javascript - 从数组中删除数组

时间:2017-04-13 10:30:00

标签: javascript math

我想从数组中的数组中删除元素(不能记住它在数学中的命名方式),例如:

var arr1 = ['uno', 'dos', 'tres', 'cuatro'],
    arr2 = ['dos', 'cuatro'],
    arr3 = arr1.without(arr2);
//arr3 === ['uno', 'tres']

问候

4 个答案:

答案 0 :(得分:3)

Array#filter可能会有所帮助。



var arr1 = ['uno', 'dos', 'tres', 'cuatro'],
    arr2 = ['dos', 'cuatro'],
    arr3 = arr1.filter(v => arr2.indexOf(v) == -1);
    
    console.log(arr3);




答案 1 :(得分:2)



var arr1 = ['uno', 'dos', 'tres', 'cuatro'];
var arr2 = ['dos', 'cuatro'];

arr1 = arr1.filter(function(item){
  return arr2.indexOf(item) < 0;
});
console.log(arr1)
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用Array#includes并取消否定的结果。

&#13;
&#13;
var arr1 = ['uno', 'dos', 'tres', 'cuatro'],
    arr2 = ['dos', 'cuatro'],
    arr3 = arr1.filter(v => !arr2.includes(v));
    
console.log(arr3);
&#13;
&#13;
&#13;

答案 3 :(得分:0)

在这里,你已经准备好了这个功能:

function substractArrays (arr1, arr2) {
    if (arr2.length) {
      return arr1.filter(item => {
        return !arr2.some(elem => {
          return item.id === elem.id;
        });
      });
    } else {
      return arr1;
    }
}