Heim > Artikel > Web-Frontend > Verwenden Sie JavaScript, um festzustellen, ob das Objekt ein Array ist
Das erste, woran wir denken werden, ist die Verwendung von typeof, um den Datentyp zu erkennen, aber für Funktion, String, Zahl, Undefiniert usw. Für diese Grundtypen können Sie typeof verwenden, um sie zu erkennen. Der Code lautet beispielsweise wie folgt:
function test(){} console.log(typeof 1); // number console.log(typeof test); // function console.log(typeof "yunxi"); // string console.log(typeof undefined); // undefined
Aber für Arrays oder reguläre Ausdrücke: Wenn Sie typeof zum Erkennen verwenden, ist das nicht zufriedenstellend, denn wenn wir ein Array oder ein reguläres Muster erkennen, ist der zurückgegebene Typ ein ObjektObjekt, wie im folgenden Code gezeigt :
console.log(typeof []); // object console.log(typeof /\d+/g); // object
Daraus können wir uns leicht vorstellen, mit „Instanceof“ zu erkennen, ob ein Objekt eine Instanz eines Arrays ist Wenn es sich um ein Array handelt, wird „true“ zurückgegeben. Wenn dies der Fall ist, wird „false“ zurückgegeben. Sehen wir uns den obigen Code an, um festzustellen, ob es sich um ein Array handelt:
console.log([] instanceof Array); // true console.log(/\d+/g instanceof Array); // false
Wie oben können Sie dies mithilfe von „instanceof“ sehen kann tatsächlich feststellen, ob es sich um ein Array-Element handelt; Funktion
, die das Objekt initialisiert, z. B. die Bestimmung des Typs eines unbekannten Objekts. Daher können wir eine Methode wie folgt schreiben, der Code lautet wie folgt:Wie Sie oben sehen können, Sie können auch feststellen, ob es sich um ein Array-Element handelt, indem Sie die Methode isArray aufrufen. Wir können jetzt sehen, dass es für den zweiten und dritten Punkt so aussieht, als ob die Verwendung der Methode „instanceof“ bzw. des Konstruktorattributs bestimmen kann, ob es sich um ein Array handelt. Es gibt jedoch auch Ausnahmen, z. B. bei der Verwendung eines Cross-Arrays. Frame-Iframe Bei der Verwendung von Arrays auf der Seite schlägt dies fehl, da die in verschiedenen Iframes erstellten Arrays ihre Prototypattribute nicht miteinander teilen. Der folgende Codetest kann wie oben überprüft werden Es gibt für uns keine Möglichkeit festzustellen, ob ein Objekt ein Array ist, aber wir können anhand von ECMA262 erkennen, dass wir die Methode Object.prototype.toString.call() verwenden können, um festzustellen, ob ein Objekt ein Array ist:
function isArray(obj) { return typeof obj == 'object' && obj.constructor == Array } // 测试demo console.log(isArray([])); // true var a = {"a":1}; console.log(isArray(a)); // false var b = [1,2,3]; console.log(isArray(b)); // true console.log(isArray(/\d+/g));// false
Das obige ist der detaillierte Inhalt vonVerwenden Sie JavaScript, um festzustellen, ob das Objekt ein Array ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!