Heim  >  Artikel  >  Web-Frontend  >  Verwenden Sie JavaScript, um festzustellen, ob das Objekt ein Array ist

Verwenden Sie JavaScript, um festzustellen, ob das Objekt ein Array ist

怪我咯
怪我咯Original
2017-04-08 10:26:081230Durchsuche

1. typeof

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

2. Instanceof

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn