gpt4 book ai didi

javascript - 我正在尝试迭代并比较两个不同的二维数组

转载 作者:太空宇宙 更新时间:2023-11-04 01:52:35 25 4
gpt4 key购买 nike

我正在尝试迭代两个不同的二维数组。我希望迭代并将路径数组的每个索引与模式数组的每个索引进行比较。如果数组的长度相同,我正在寻找一个与该索引匹配或具有通配符的索引,此时我将其传递给另一个函数以进行进一步细化。

我很难找到使用哪些方法组合来控制整个过程的迭代而不失去同步。问题还有很多,但完善我的策略肯定会帮助我在其余方面走上成功之路。

Paths:
[ [ 'w', 'x', 'y', 'z' ],
[ 'a', 'b', 'c' ],
[ 'foo' ],
[ 'foo', 'bar' ],
[ 'foo', 'bar', 'baz' ] ]

Patterns:
[ [ '*', 'b', '*' ],
[ 'a', '*', '*' ],
[ '*', '*', 'c' ],
[ 'foo', 'bar', 'baz' ],
[ 'w', 'x', '*', '*' ],
[ '*', 'x', 'y', 'z' ] ]

let determineMatch = (paths, patterns) => {

let exactMatch = null;
let potentialMatches = [];

paths.forEach( path => {
for (let i = 0; i < patterns.length; i++) {
for (let j = 0; j < patterns[i].length; j++) {
if (path.toString() === patterns[i].toString()) {
exactMatch = patterns[i]
break;
} else if (path.length === patterns[i].length && patterns[i].includes('*')) {

if(potentialMatch(path, patterns)) {
potentialMatches.push(patterns[i]);
}
}
}
}
})`

最佳答案

async.each(paths,(path,cb)=>{
async.each(patterns,(pattern,callback){
if(path.toString() == pattern.toString()){
exactMatch = pattern;
return cb(exactMatch);
}else if(path.length == pattern.length && pattern.includes('*')){
if(potentialMatch(path, pattern)) {
potentialMatches.push(pattern);
}
}
callback();
},()=>{})
cb();
},()=>{
console.log("Done");
})

关于javascript - 我正在尝试迭代并比较两个不同的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49103927/

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