Array.prototype.keys()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die Methode keys() von Array-Instanzen gibt ein neues Array-Iterator-Objekt zurück, das die Schlüssel für jeden Index im Array enthält.
Probieren Sie es aus
const array = ["a", "b", "c"];
const iterator = array.keys();
for (const key of iterator) {
console.log(key);
}
// Expected output: 0
// Expected output: 1
// Expected output: 2
Syntax
keys()
Parameter
Keine.
Rückgabewert
Ein neues iterierbares Iterator-Objekt.
Beschreibung
Bei Arrays mit Lücken durchläuft die Methode keys() auch leere Positionen, als hätten sie den Wert undefined.
Die Methode keys() ist generisch. Sie setzt lediglich voraus, dass der Wert von this eine length-Eigenschaft und ganzzahlig indizierte Eigenschaften hat.
Beispiele
>keys() bei Arrays mit Lücken verwenden
Anders als Object.keys(), das nur tatsächlich im Array vorhandene Schlüssel berücksichtigt, ignoriert der keys()-Iterator keine Lücken, die fehlende Eigenschaften darstellen.
const arr = ["a", , "c"];
const sparseKeys = Object.keys(arr);
const denseKeys = [...arr.keys()];
console.log(sparseKeys); // ['0', '2']
console.log(denseKeys); // [0, 1, 2]
keys() für Objekte aufrufen, die keine Arrays sind
Die Methode keys() liest die length-Eigenschaft von this und gibt anschließend alle ganzzahligen Indizes zwischen 0 und length - 1 aus. Auf die Werte an diesen Indizes wird dabei nicht zugegriffen.
const arrayLike = {
length: 3,
};
for (const entry of Array.prototype.keys.call(arrayLike)) {
console.log(entry);
}
// 0
// 1
// 2
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.prototype.keys> |