gpt4 book ai didi

javascript - 在另一个数组中查找数组的数组...

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

我正在处理“数组的数组”,并尝试测试第二个数组中包含的所有“集合”是否都存在于第一个数组中。

var arr = [['Netherlands','PP3a'],['Austria','PP16a'],['Estonia','PP3a'],['Luxembourg','PP3a'],['Belgium','PP3a']];

var n = [['Luxembourg','PP3a'],['Netherlands','PP3a'],['Belgium','PP3a']];

在我的示例中 https://jsfiddle.net/mnb8jddw/它们显然是存在的,但是代码(顺便说一句似乎可以与数字一起使用)读取错误。我显然对自己感到困惑,并且非常感谢一些帮助,因为我怀疑我采取了错误的方法。

var arr = [
['Netherlands', 'PP3a'],
['Austria', 'PP16a'],
['Estonia', 'PP3a'],
['Luxembourg', 'PP3a'],
['Belgium', 'PP3a']
];
var n = [
['Luxembourg', 'PP3a'],
['Netherlands', 'PP3a'],
['Belgium', 'PP3a']
];

function searchForArray(haystack, needle) {
var i, j, current;
for (var i in haystack) {
if (needle.length === haystack[i].length) {
current = haystack[i];
for (j = 0; j < needle.length && needle[j] === current[j]; ++j);
if (j === needle.length)
return i;
}
}
return -1;
}

console.log(searchForArray(arr, n)); // -1 = false

最佳答案

我不确定这是否是您正在寻找的答案,但如果您正在寻找快速而肮脏的解决方案,您可以尝试以下方法:

const lookup = (ar, sets) => {
// concatenate each entry in the searched array
const _hashed = ar.map(i => i.join(''))
return sets.every((set) => {
// contatenate each entry to look for
const _set = set.join('')
// does the searched array contain the concatenated string?
return _hashed.indexOf(_set) > -1
})
}

console.log(lookup(arr, n)) // => true

请注意,元素的顺序很重要(即:['Luxembourg', 'PP3a'] 将匹配,但 ['PP3a', 'Luxembourg']不会)

参见updated fiddle

关于javascript - 在另一个数组中查找数组的数组...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46133403/

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