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
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ächlichenArray-Instanzen sind, selbst wenn sichArray.prototypein ihrer Prototypenkette befindet.instanceof Arraywürde diese Werte akzeptieren, da es die Prototypenkette prüft.Array.isArray()akzeptiertArray-Objekte, die in einem anderen Realm erstellt wurden.instanceof Arraygibt für diesefalsezurück, weil derArray-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
// 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.
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> |