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 der Array: length-Property
Schreibbar ja
Aufzählbar nein
Konfigurierbar nein

Beschreibung

Der Wert der length-Eigenschaft ist eine nichtnegative ganze Zahl mit einem Wert kleiner als 232.

js
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 neuen length werden gelöscht.
  • Das Festlegen eines beliebigen Array-Index (eine nichtnegative ganze Zahl, kleiner als 232) über die aktuelle length hinaus, erweitert das Array — die length-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 eine RangeError-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.

js
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.

js
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.

js
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.

js
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.

js
"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

Siehe auch