Wie kann der Index eines Arrays in einer Array-Sammlung am besten gefunden werden? Warum gibt index_of() den richtigen Index nicht zurück? Ich vermute, es hat etwas mit der Gleichheit von Objekten zu tun?Verwenden von indexOf zum Abrufen des Index des Arrays in einer Array-Sammlung (JavaScript)
Ich habe gesehen, dass andere Lösungen die Auflistung durchlaufen und den Index zurückgeben, der erreicht wurde, wenn die Gleichheitsprüfung erfüllt ist, aber ich bin immer noch neugierig, warum indexOf() nicht dasselbe tut. Außerdem kann ich ES6's find/findIndex aufgrund der IE 11 Unterstützung nicht benutzen (wie immer). Ich habe meinen Testcode unten eingefügt. Danke vielmals.
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();
Sie haben recht, es hat etwas mit der Gleichheit von Objekten zu tun, weil '[] == []' 'false' ist. –
Ich hatte eine Antwort auf diese Frage, in diesem Fall könnte util vergleichen Arrays als Zeichenfolge sein, https://jsfiddle.net/dbpLenwu/ –
@trincot Ich glaube nicht, dass dies eine doppelte Frage ist, wie ich nach dem besten suchte Weg, um den Index des Arrays zu finden und wollte auch einige Hintergrundinformationen darüber, warum IndexOf nicht funktioniert (was war nicht der Haupt Diskussionspunkt). Danke vielmals. – poolts