gpt4 book ai didi

javascript - 比较不同大小和维度的数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:08 25 4
gpt4 key购买 nike

所以这是提出的问题。

比较两个数组并返回一个新数组,其中包含在两个原始数组中都找不到的任何项目。

这是我目前所拥有的。

function diff(arr1, arr2) {
for (var a in arr1) {
for (var b in arr2) {
if (arr1[a] == arr2[b]){
arr2.splice(b,1);
}
}
}
return arr2;
}

diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);

这段代码基本上只是将第一个数组的每个值与第二个数组进行比较。如果找到匹配项,它会使用拼接函数删除该项目。

这对于一维数组非常有效,但我怎样才能让它适用于多维数组,例如:

diff([1, 2, 3, 5], [1, [2, 3], [4, 5]]);

如果这些数组不仅仅是二维的,而是任意数量的维度呢?我应该能够遍历每个数组的每个元素,无论它们是如何设置的。

最佳答案

使用 lodash 你可以这样做:

var a = [1, 2, 3, 5, 7], b = [1, [2, 3], [4, 5, [7]]];

var result = _.filter(_.flattenDeep(b), function(item){
return a.indexOf(item) === -1;
});

console.log(result);
$("body").append(JSON.stringify(result))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js"></script>
<body></body>

关于javascript - 比较不同大小和维度的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31592505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com