Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Array.isArray()

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 statische Methode Array.isArray() bestimmt, ob der übergebene Wert ein Array ist.

Probieren Sie es aus

console.log(Array.isArray([1, 3, 5]));
// Expected output: true

console.log(Array.isArray("[]"));
// Expected output: false

console.log(Array.isArray(new Array(5)));
// Expected output: true

console.log(Array.isArray(new Int16Array([15, 33])));
// Expected output: false

Syntax

js
Array.isArray(value)

Parameter

value

Der zu prüfende Wert.

Rückgabewert

true, wenn value ein Array ist; andernfalls false. Wenn value eine Instanz von TypedArray ist, wird immer false zurückgegeben.

Beschreibung

Array.isArray() prüft, ob der übergebene Wert ein Array ist. Dazu führt die Methode eine Markenprüfung durch, ähnlich wie der Operator in bei einem privaten Feld, das vom Konstruktor Array() initialisiert wurde.

Die Methode ist eine zuverlässigere Alternative zu instanceof Array, da sie falsch positive und falsch negative Ergebnisse vermeidet:

  • Array.isArray() weist Werte zurück, die keine tatsächlichen Array-Instanzen sind, selbst wenn sich Array.prototype in ihrer Prototypenkette befindet. instanceof Array würde diese Werte akzeptieren, da es die Prototypenkette prüft.
  • Array.isArray() akzeptiert Array-Objekte, die in einem anderen Realm erstellt wurden. instanceof Array gibt für diese false zurück, weil der Array-Konstruktor in jedem Realm eine andere Identität hat.

Weitere Informationen finden Sie im Artikel „Determining with absolute accuracy whether or not a JavaScript object is an array“.

Beispiele

Array.isArray() verwenden

js
// all following calls return true
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array("a", "b", "c", "d"));
Array.isArray(new Array(3));
// Little known fact: Array.prototype itself is an array:
Array.isArray(Array.prototype);

// all following calls return false
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray("Array");
Array.isArray(true);
Array.isArray(false);
Array.isArray(new Uint8Array(32));
// This is not an array, because it was not created using the
// array literal syntax or the Array constructor
Array.isArray({ __proto__: Array.prototype });

instanceof im Vergleich zu Array.isArray()

Bei der Prüfung, ob ein Wert eine Array-Instanz ist, sollten Sie Array.isArray() gegenüber instanceof bevorzugen, da es auch über Realm-Grenzen hinweg funktioniert.

js
const iframe = document.createElement("iframe");
document.body.appendChild(iframe);
const xArray = window.frames[window.frames.length - 1].Array;
const arr = new xArray(1, 2, 3); // [1, 2, 3]

// Correctly checking for Array
Array.isArray(arr); // true
// The prototype of arr is xArray.prototype, which is a
// different object from Array.prototype
arr instanceof Array; // false

Spezifikationen

Spezifikation
ECMAScript® 2027 Language Specification
# sec-array.isarray

Browser-Kompatibilität

Siehe auch