在Array[2D]中查找Array[1D]并返回索引



有没有办法更快地在数组[2D]中找到匹配索引?我知道1比1可以让这一切正常,但我不想。

我试过这个,但它只能返回-1

// mainsheetvalues is array[1D],
[1,2,3,4,5]

// AsheetValues is array [2D]
[
[1,2,3,4,5],
[6,7,8,9,0]
]
Logger.log(mainsheetvalues.indexOf(AsheetValues))

根据这个答案,我们不能直接比较两个数组。您需要为比较生成一些自定义逻辑。我在下面添加了一个逻辑。希望这能有所帮助。

const AsheetValues  = [
[1,2,3,4,5],
[6,7,8,9,0]
]   
const mainsheetvalues  = [1,2,3,4,5];
const isIncluded = (parentArr, childArr) => {
let isMatch = true;
for(let parentLoopIndex = 0; parentLoopIndex < parentArr.length; parentLoopIndex++) {
if (parentArr[parentLoopIndex].length != childArr.length)
isMatch = false;

for (var i = 0; i < parentArr[parentLoopIndex].length; i++) {
if (parentArr[parentLoopIndex][i] != childArr[i]) { 
isMatch = false;   
}           
}   
if (isMatch)  {
parentLoopIndex = parentArr.length;
}    
}
return isMatch;
}
console.log(isIncluded(AsheetValues, mainsheetvalues));

最新更新