从其他阵列删除完全匹配的阵列

时间:2019-02-25 15:57:03

标签: javascript arrays typescript lodash

是否可以从另一个数组中删除完全匹配的数组?

两个数组:

let array1: any[] = [[1], [2,3], [1,2]];
let array2: any[] = [[1]];

我想做什么:

function deleteArrayFromArray(array2) {
  // delete given array2 from array1
}

结果应为:

array1 or new array --> [[2,3], [1,2]]

有没有类似lodash的过滤器,但具有精确的数组与数组的比较:

_.filter(array1, array2);

1 个答案:

答案 0 :(得分:1)

您可以过滤一个数组,然后将对象与JSON.stringify与第二个数组进行比较,然后使用slice方法从一个数组中删除,

let array1 = [[1], [2,3], [1,2]]

let array2 = [[1]];
//console.log(array1);    
array1.filter(function(obj) {
 // JSON.stringify(obj)==JSON.stringify(obj)
  for( var i=0, len=array2.length; i<len; i++ ){
          if(JSON.stringify(obj)==JSON.stringify(array2[i]) ) {
              array1.splice(i, 1);
             return false;
          }
      }
	return true; 
});
console.log(array1);