Wenn Sie mit JavaScript arbeiten, müssen Sie oft überprüfen, ob eine Variable ein Array ist oder nicht. Diese Überprüfung kann beispielsweise zum Hinzufügen von Elementen zu einem Array, zum Ausführen von Schleifen oder zum Überprüfen von Datentypen nützlich sein. Es gibt mehrere Möglichkeiten zu überprüfen, ob eine Variable ein Array ist, und in diesem Artikel werden wir uns einige von ihnen ansehen.
Eine der einfachsten Methoden zur Validierung ist die Verwendung einer Methode Array.isArray(). Mit dieser Methode können Sie bestimmen, ob eine Variable ein Array ist oder nicht. Es gibt den booleschen Wert true zurück, wenn die Variable ein Array ist, und false, wenn nicht. Der Code, der diese Methode verwendet, könnte folgendermaßen aussehen:
Eine andere Möglichkeit zur Validierung ist die Verwendung eines Operators typeof. Wenn die Variable ein Array ist, gibt der typeof-Operator den Wert "object" zurück. Diese Methode ist jedoch unzuverlässig, da typeof auch ein "object" für andere Datentypen wie Objekte und Nullwerte zurückgeben kann.
Sie können also überprüfen, ob eine Variable in JavaScript ein Array ist, indem Sie die Array-Methode verwenden.isArray() oder der Typeof-Operator. Es wird empfohlen, die Array-Methode zu verwenden.isArray(), da es am zuverlässigsten ist und klare Informationen über den Datentyp der Variablen liefert.
JavaScript: Überprüfen, ob eine Variable ein Array ist
1. Verwenden der Array-Methode.isArray()
Der einfachste und zuverlässigste Weg, um zu überprüfen, ob eine Variable ein Array ist, besteht darin, die integrierte Array-Methode zu verwenden.isArray() . Diese Methode akzeptiert ein einzelnes Argument und gibt true zurück , wenn das Argument ein Array ist, andernfalls false.
var arr = [1, 2, 3];var isArr = Array.isArray(arr); // truevar str = "Hello";var isArr2 = Array.isArray(str); // false
2. Validierung mit dem typeof-Operator
Eine andere Möglichkeit zu überprüfen, ob eine Variable ein Array ist, besteht darin, den typeof- Operator zu verwenden. Der typeof-Operator gibt jedoch "object" für alle Objekte zurück, einschließlich Arrays. Daher müssen Sie für eine zuverlässige Überprüfung zuerst sicherstellen, dass die Variable ein Objekt ist, und dann zusätzlich überprüfen, ob die Variable keine Funktion ist.
var arr = [1, 2, 3];var isArr = typeof arr === "object" && arr !== null && !Array.isArray(arr) && typeof arr !== "function"; // truevar str = "Hello";var isArr2 = typeof str === "object" && str !== null && !Array.isArray(str) && typeof str !== "function"; // false
3. Validierung mit dem length-Index und der push() -Methode
Eine andere Möglichkeit zu überprüfen, ob eine Variable ein Array ist, besteht darin zu überprüfen, ob die Variable eine length-Eigenschaft hat und über eine push() -Methode verfügt, mit der dem Array Elemente hinzugefügt werden.
var arr = [1, 2, 3];var isArr = arr.hasOwnProperty("length") && typeof arr.push === "function"; // truevar str = "Hello";var isArr2 = str.hasOwnProperty("length") && typeof str.push === "function"; // false
Mit einer dieser Methoden können Sie leicht überprüfen, ob eine Variable ein Array ist, und die Arbeit damit gemäß der Logik Ihres Programms fortsetzen.
Methode 1: Array.isArray()
Ein Beispiel für die Verwendung der Array-Methode.isArray() :
var arr = [1, 2, 3];console.log(Array.isArray(arr)); // truevar obj = ;console.log(Array.isArray(obj)); // false
Im ersten Beispiel ist die Variable arr ein Array, daher die Array-Methode.isArray() gibt true zurück .
Im zweiten Beispiel ist die Variable obj kein Array, daher die Array-Methode.isArray() gibt false zurück .
Die Array-Methode.isArray() ist eine zuverlässige Möglichkeit, den Variablentyp in JavaScript zu überprüfen und wird zur Verwendung empfohlen.
Methode 2: typeof und if-Konstrukt
Dazu können wir das if-Konstrukt verwenden. Wenn der Variablentyp "object" ist und die Variable eine length-Eigenschaft hat, können wir davon ausgehen, dass diese Variable ein Array ist. Als nächstes können Sie zusätzliche Überprüfungen hinzufügen, um diese Annahme zu bestätigen.
Im folgenden Beispielcode wird veranschaulicht, wie typeof und das if-Konstrukt verwendet werden, um zu überprüfen, ob eine Variable ein Array ist:
if (typeof myVariable === "object" && myVariable.hasOwnProperty("length"))/ Переменная является массивом> else/ Переменная не является массивом>
In diesem Beispiel überprüfen wir zuerst, ob der Variablentyp "object" ist. Dann überprüfen wir, ob die Variable eine length-Eigenschaft mit der hasOwnProperty() -Methode hat. Wenn beide Bedingungen erfüllt sind, können wir sicher sein, dass die Variable ein Array ist.
Daher ist Methode 2 eine einfache Möglichkeit zu überprüfen, ob eine Variable mit typeof und dem if-Konstrukt ein Array ist.
Methode 3: instanceof und Array-Konstruktor
Der instanceof-Operator überprüft, ob ein Objekt zu einem bestimmten Prototyp gehört. In diesem Fall prüfen wir, ob die Variable zum Array- Prototyp gehört.
let arr = [1, 2, 3];let isArr = arr instanceof Array;console.log(isArr); // truelet str = "Hello";let isStrArr = str instanceof Array;console.log(isStrArr); // false
In diesem Beispiel ist die Variable arr ein Array und gehört zum Array-Prototyp, daher lautet das Ergebnis true . Und die Variable str ist eine Zeichenfolge und gehört nicht zum Array-Prototyp, daher ist das Ergebnis false .
Es ist jedoch erwähnenswert, dass diese Methode in bestimmten Fällen unzuverlässig sein kann. Zum Beispiel:
let obj = ;let isObjArr = obj instanceof Array;console.log(isObjArr); // false
In diesem Beispiel ist die Variable obj kein Array, sie hat jedoch eine length-Eigenschaft, die Arrays haben. Die Validierung mit instanceof gibt jedoch ein falsches Ergebnis zurück.
Methode 4: Object.prototype.toString()
Verwenden Sie den folgenden Code, um den Variablentyp für ein Array zu überprüfen:
typeof variable === 'object' && Object.prototype.toString.call(variable) === '[object Array]'
In diesem Fall überprüfen wir zuerst, ob die Variable ein Objekt ist, und verwenden dann die toString() -Methode mit der call() -Methode. Wenn das Ergebnis des Aufrufs von toString() gleich ist '[object Array]', das bedeutet, dass die Variable ein Array ist.
Hier ist ein Beispielcode:
let variable = [1, 2, 3];console.log(typeof variable === 'object' && Object.prototype.toString.call(variable) === '[object Array]'); // truevariable = 'Hello, world!';console.log(typeof variable === 'object' && Object.prototype.toString.call(variable) === '[object Array]'); // false
Die Object-Methode.prototype.toString() ist eine universelle Möglichkeit, den Typ eines Objekts zu überprüfen, sodass es nicht nur zum Überprüfen von Arrays, sondern auch für andere Variablentypen verwendet werden kann.
Methode 5: Durch die Indexierung des Elements
dies ist zu versuchen, auf das Element anhand seines Index zuzugreifen und zu überprüfen, ob es existiert.
Wenn das Element existiert, ist die Variable ein Array. Betrachten wir ein Beispiel:
const variable = [1, 2, 3];if (variable[0] !== undefined)else
In diesem Beispiel versuchen wir, auf ein Array-Element mit dem Index 0 zu verweisen.
Wenn das Element nicht existiert, ist die Variable kein Array.
Diese Methode ist jedoch nicht zuverlässig, da es möglich ist, dass einige Werte im Array vorhanden sind
kann auch undefined sein. Daher wird empfohlen, andere Validierungsmethoden zu verwenden
um ein genaueres Ergebnis zu erzielen.