Найти массив [1D] в массиве [2D] и вернуть индекс - PullRequest
0 голосов
/ 24 февраля 2020

есть ли способ быстрее найти индекс соответствия в массиве [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))

1 Ответ

0 голосов
/ 24 февраля 2020

Согласно этому ответу , мы не можем сравнивать два массива напрямую. Вам нужно сгенерировать несколько пользовательских логи c для сравнения. Я добавил логи c ниже. Надеюсь, это поможет.

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...