Ich bin neu bei JavaScript und es gibt eine Sache, die mich stört. Ich habe einen sehr einfachen Code bekam:Warum array.indexOf (undefined) nicht funktioniert, wenn das Array spärlich ist
var a = [];
a[1] = 1;
i = typeof(a[0]);
index = a.indexOf(undefined);
len = a.length;
console.log(a);
console.log("\n" + len);
console.log("\n" + i);
console.log("\n" + index);
Meine Frage ist: Warum indexOf -1 zurückgibt, statt 0 Ich weiß, dass diese Methode von === vergleichen, aber ich verwendet als Parameter Schlüsselwort undefined . Wenn ich den Methodenparameter auf "undefined" ändere, funktioniert es auch nicht (aber das ist für mich offensichtlich). Kann mir jemand das erklären und sagen, was ist der einfachste Weg, einen undefinierten Wert im Array zu finden?
'undefined 'ist ein Grundelement in JavaScript, also ist es eine eigene Sache, was Sie haben, ist ein leerer Index, der nicht existiert, bis Sie ihm etwas zuweisen. Wenn 'indexOf()' in einem Array nach 'undefined' sucht, sucht es tatsächlich nach diesem Wert, wenn es einen Wert für jeden unbestückten Index in einem Array zurückgibt, würde es für immer – JmJ
Mögliche Duplikate von [Wie finde ich den Index eines fehlenden Wertes in einem Array?] (http: // stackoverflow.com/questions/30574147/how-to-find-the-Index eines fehlenden Wertes in einem Array) – djechlin
Wie oben erwähnt, ist "undefined" ein bisschen falsch, es ist eigentlich ein spezifisches Primitiv Wert, so ist es in der Tat definiert und nicht wörtlich * nicht definiert *, was Sie erhalten, wenn Sie ein Array mit nicht gesetzten Indizes haben. – adeneo