Javascript 如何查找具有嵌套数组的两个数组之间的差异

Javascript 如何查找具有嵌套数组的两个数组之间的差异,javascript,arrays,filter,Javascript,Arrays,Filter,如何找到两个嵌套了数组的数组之间的差异? 我尝试了不同的方法,包括过滤,但没有成功。 我们有两个阵列: var arr1 = [ [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6]]; var arr2 = [ [1, 1], [1, 2], [1, 5]]; 我只需要得到一个数组,其中的元素在第一个数组中不存在,因此: [[1,3],[1,4],[1,6]]您可以使用谓词对arr1进行筛选arr2中没有所有项匹配的元素 var arr1=[[1,1

如何找到两个嵌套了数组的数组之间的差异? 我尝试了不同的方法,包括过滤,但没有成功。 我们有两个阵列:

var arr1 = [ [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6]];
var arr2 = [ [1, 1], [1, 2], [1, 5]];
我只需要得到一个数组,其中的元素在第一个数组中不存在,因此:
[[1,3],[1,4],[1,6]]

您可以使用谓词对
arr1
进行筛选
arr2
中没有所有项匹配的元素

var arr1=[[1,1]、[1,2,3]、[1,3]、[1,4]、[1,5]、[1,6];
var arr2=[[1,1],[1,2],[1,5];
let filtered=arr1.filter(a=>
!arr2.some(a2=>a.length==a2.length&&a2.every((n,i)=>n==a[i]))
)

console.log(已过滤)
您可以使用谓词在
arr1
上过滤
arr2
中没有所有项匹配的元素

var arr1=[[1,1]、[1,2,3]、[1,3]、[1,4]、[1,5]、[1,6];
var arr2=[[1,1],[1,2],[1,5];
let filtered=arr1.filter(a=>
!arr2.some(a2=>a.length==a2.length&&a2.every((n,i)=>n==a[i]))
)

console.log(已过滤)
显示您的最佳尝试。你读过关于如何比较Arrray的任何问题吗?这回答了你的问题吗?如果
arr2
包含
arr1
中不存在的元素,您是否也需要这些元素?也就是说,您是否正在寻找元素方面的
arr1&!arr2
,或
arr1^arr2
?展示您的最佳尝试。你读过关于如何比较Arrray的任何问题吗?这回答了你的问题吗?如果
arr2
包含
arr1
中不存在的元素,您是否也需要这些元素?也就是说,您是否正在寻找元素方面的
arr1&!arr2
,或
arr1^arr2
?嵌套循环的复杂性为O(n^3)。创建一张地图可能更好?@DhananjaiPai这真的取决于数据。创建和填充映射的速度将减慢,直到达到它不存在的程度为止,并且您仍然需要一些方法来测试相等性,例如比较数组或它们的字符串化版本。嵌套循环的复杂性为O(n^3)。创建一张地图可能更好?@DhananjaiPai这真的取决于数据。创建和填充映射的速度会减慢,直到达到不这样的速度为止,您仍然需要一些方法来测试是否相等,比如比较数组或它们的字符串化版本。