gpt4 book ai didi

javascript - 使用 lodash 或某些 native 方法检查 array1 是否包含数组中的任何元素?

转载 作者:行者123 更新时间:2023-11-30 12:18:21 27 4
gpt4 key购买 nike

我知道我可以编写采用 array1 的自定义循环,并对每个元素执行 indexOf 到另一个数组。

但我正在尝试制作游戏。而且我可以看到自己遇到很多情况,我会被迫一遍又一遍地编写相同的代码。因此,我认为使用一些实用程序库是个好主意。现在我的想法是 lodash。但是,我必须先学习它。

那么我如何轻松地比较两个数组,并在任何元素与另一个数组中的任何元素匹配时返回 true。

最佳答案

没有 lodash 方法可以比较两个数组并在两个数组之间有任何重复项时返回 bool 值。有 _.intersection() ,但这会返回一个包含所有重复项的数组,因此效率不高。

所以,只需编写一个简单的函数即可。我将其称为 containsAny():

es5

function containsAny(a, b) {
return a.some(function(el) {
return b.indexOf(el) > -1;
});
}

es4

由于 Array.prototype.some()Array.prototype.indexOf() 都是 JavaScript 第 5 版的新功能,这里有一些普通的 javascript在没有垫片的旧浏览器中工作:

function containsAny(a, b) {
for (var i = 0; i < a.length; i++) {
if (contains(b, el)) {
return true;
}
}
return false;
}
function contains(a, el) {
for (var i = 0; i < a.length; i++) {
if (a[i] === el) {
return true;
}
}
return false;
}

lodash

lodash 版本实际上并不比 vanilla js 版本简单,尽管它在某些浏览器中可能更快。

function containsAny(a, b) {
return _.some(a, function(el) {
return _.contains(b, el);
});
}

关于javascript - 使用 lodash 或某些 native 方法检查 array1 是否包含数组中的任何元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31768055/

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