Array: length
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die Daten-Eigenschaft length
einer Array
-Instanz repräsentiert die Anzahl der Elemente in diesem Array. Der Wert ist eine vorzeichenlose 32-Bit-Ganzzahl, die immer numerisch größer als der höchste Index im Array ist.
Probieren Sie es aus
Wert
Eine nichtnegative ganze Zahl, die kleiner als 232 ist.
Eigenschaften von Array: length | |
---|---|
Schreibbar | ja |
Aufzählbar | nein |
Konfigurierbar | nein |
Beschreibung
Der Wert der length
-Eigenschaft ist eine nichtnegative ganze Zahl mit einem Wert kleiner als 232.
const listA = [1, 2, 3];
const listB = new Array(6);
console.log(listA.length);
// 3
console.log(listB.length);
// 6
listB.length = 2 ** 32; // 4294967296
// RangeError: Invalid array length
const listC = new Array(-100); // Negative numbers are not allowed
// RangeError: Invalid array length
Das Array-Objekt beobachtet die length
-Eigenschaft und synchronisiert den length
-Wert automatisch mit dem Inhalt des Arrays. Das bedeutet:
- Das Festlegen von
length
auf einen Wert, der kleiner als die aktuelle Länge ist, kürzt das Array — Elemente außerhalb der neuenlength
werden gelöscht. - Das Festlegen eines beliebigen Array-Index (eine nichtnegative ganze Zahl, kleiner als 232) über die aktuelle
length
hinaus, erweitert das Array — dielength
-Eigenschaft wird erhöht, um den neuen höchsten Index widerzuspiegeln. - Das Setzen von
length
auf einen ungültigen Wert (z.B. eine negative Zahl oder eine Nicht-Ganzzahl) löst eineRangeError
-Ausnahme aus.
Wenn length
auf einen größeren Wert als die aktuelle Länge gesetzt wird, wird das Array durch Hinzufügen von leeren Slots erweitert, nicht durch tatsächliche undefined
-Werte. Leere Slots haben einige spezielle Interaktionen mit Array-Methoden; siehe Array-Methoden und leere Slots.
const arr = [1, 2];
console.log(arr);
// [ 1, 2 ]
arr.length = 5; // set array length to 5 while currently 2.
console.log(arr);
// [ 1, 2, <3 empty items> ]
arr.forEach((element) => console.log(element));
// 1
// 2
Siehe auch Beziehung zwischen length
und numerischen Eigenschaften.
Beispiele
Über ein Array iterieren
Im folgenden Beispiel wird das Array numbers
durch Iteration über die length
-Eigenschaft durchlaufen. Der Wert in jedem Element wird dann verdoppelt.
const numbers = [1, 2, 3, 4, 5];
const length = numbers.length;
for (let i = 0; i < length; i++) {
numbers[i] *= 2;
}
// numbers is now [2, 4, 6, 8, 10]
Ein Array kürzen
Im folgenden Beispiel wird das Array numbers
auf eine Länge von 3 verkürzt, wenn die aktuelle Länge größer als 3 ist.
const numbers = [1, 2, 3, 4, 5];
if (numbers.length > 3) {
numbers.length = 3;
}
console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3
console.log(numbers[3]); // undefined; the extra elements are deleted
Ein leeres Array fester Länge erstellen
Das Festlegen von length
auf einen größeren Wert als die aktuelle Länge erstellt ein dünn besetztes Array.
const numbers = [];
numbers.length = 3;
console.log(numbers); // [empty x 3]
Array mit nicht schreibbarer Länge
Die length
-Eigenschaft wird von dem Array automatisch aktualisiert, wenn Elemente über die aktuelle Länge hinaus hinzugefügt werden. Wenn die length
-Eigenschaft nicht schreibbar gemacht wird, kann das Array sie nicht aktualisieren. Dies verursacht einen Fehler im Strict-Modus.
"use strict";
const numbers = [1, 2, 3, 4, 5];
Object.defineProperty(numbers, "length", { writable: false });
numbers[5] = 6; // TypeError: Cannot assign to read only property 'length' of object '[object Array]'
numbers.push(5); // // TypeError: Cannot assign to read only property 'length' of object '[object Array]'
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-properties-of-array-instances-length |
Browser-Kompatibilität
BCD tables only load in the browser