Каков наилучший способ найти индекс массива в коллекции массивов? Почему indexOf() не возвращает правильный индекс? Я предполагаю, что это связано с равенством объектов?Использование indexOf для получения индекса массива в массиве массивов (Javascript)
Я видел, как другие решения проходят через коллекцию и возвращают индекс, достигнутый при проверке равенства, но мне все же интересно узнать, почему indexOf() не делает то же самое. Кроме того, я не могу использовать ES6 find/findIndex из-за поддержки IE 11 (как всегда). Я включил свой тестовый код ниже. Большое спасибо.
var numbers = [ [1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12] ];
function getIndex (numbersToTest) {
return numbers.indexOf(numbersToTest);
};
function test() {
console.log(getIndex([1, 2, 3, 4, 5, 6])); // Except 0
console.log(getIndex([7, 8, 9, 10, 11, 12])); // Expect 1
console.log(getIndex([2, 1, 3, 4, 5, 6])); // Expect -1 (not in same order)
}
test();
Вы правы, что это имеет какое-то отношение к равенству объектов, потому что '[] == []' is 'false'. –
У меня был ответ на этот вопрос, в этом случае можно было бы использовать сравнение массивов в виде строки, https://jsfiddle.net/dbpLenwu/ –
@trincot Я не верю, что это дублированный вопрос, поскольку я искал лучший способ найти индекс массива, а также хотел получить некоторую справочную информацию о том, почему indexOf не работал (что не было основной точкой обсуждения). Большое спасибо. – poolts