是否可以从另一个数组中删除完全匹配的数组?
两个数组:
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);
答案 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);