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 repräsentiert die Anzahl der Elemente in diesem Array. 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 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 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 automatisch den length
Wert mit dem Inhalt des Arrays. Das bedeutet:
- Wenn
length
auf einen Wert gesetzt wird, der kleiner ist als die aktuelle Länge, wird das Array gekürzt — Elemente, die über die neuelength
hinausgehen, werden gelöscht. - Wenn ein Array-Index (eine nicht negative Ganzzahl, die kleiner als 232 ist) gesetzt wird, der über die aktuelle
length
hinausgeht, 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 ganzzahlige Zahl), wird eineRangeError
Ausnahme ausgelöst.
Wenn length
auf einen größeren Wert als die aktuelle Länge gesetzt wird, wird das Array durch Hinzufügen leerer Slots erweitert und 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 Zusammenhang zwischen length
und numerischen Eigenschaften.
Beispiele
Über ein Array iterieren
Im folgenden Beispiel wird das Array numbers
durch Betrachtung der 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
Das folgende Beispiel kürzt das Array numbers
auf eine Länge von 3, 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
Wenn length
auf einen Wert größer als die aktuelle Länge gesetzt wird, wird ein spärliches Array erstellt.
const numbers = [];
numbers.length = 3;
console.log(numbers); // [empty x 3]
Array mit nicht-beschreibbarer 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 beschreibbar gemacht wird, kann das Array sie nicht aktualisieren. Dies führt zu einem Fehler im strikten 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® 2026 Language Specification # sec-properties-of-array-instances-length |