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 length
Dateneigenschaft einer Array
-Instanz stellt die Anzahl der Elemente in diesem Array dar. Der Wert ist eine vorzeichenlose 32-Bit-Ganzzahl, die immer numerisch größer ist als der höchste Index im Array.
Probieren Sie es aus
const clothing = ["shoes", "shirts", "socks", "sweaters"];
console.log(clothing.length);
// Expected output: 4
Wert
Eine nicht-negative Ganzzahl kleiner als 232.
Eigenschaften von Array: length | |
---|---|
Schreibbar | ja |
Aufzählbar | nein |
Konfigurierbar | nein |
Beschreibung
Der Wert der length
-Eigenschaft ist eine nicht-negative Ganzzahl 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. Dies bedeutet:
- Wenn
length
auf einen kleineren Wert als die aktuelle Länge gesetzt wird, wird das Array verkürzt — Elemente, die über die neuelength
hinausgehen, werden gelöscht. - Wenn ein beliebiger Array-Index (eine nicht-negative Ganzzahl kleiner als 232) über die aktuelle
length
hinaus gesetzt wird, wird das Array erweitert — dielength
-Eigenschaft wird erhöht, um den neuen höchsten Index widerzuspiegeln. - Wenn
length
auf einen ungültigen Wert gesetzt wird (z.B. eine negative Zahl oder eine Nicht-Ganzzahl), wird eineRangeError
-Ausnahme ausgelöst.
Wenn length
auf einen größeren Wert als die aktuelle Länge gesetzt wird, wird das Array durch das Hinzufügen von leeren Plätzen erweitert, nicht durch tatsächliche undefined
-Werte. Leere Plätze haben einige spezielle Interaktionen mit Array-Methoden; siehe Array-Methoden und leere Plätze.
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
Iterieren über ein Array
Im folgenden Beispiel wird das Array numbers
durchlaufen, indem die length
-Eigenschaft betrachtet wird. 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 verkü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
Leeres Array mit fester Länge erstellen
Das Setzen von length
auf einen Wert größer als die aktuelle Länge erzeugt 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 vom 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® 2025 Language Specification # sec-properties-of-array-instances-length |