Heim >Web-Frontend >Front-End-Fragen und Antworten >Was ist ein Pseudo-Array in Javascript?
In JavaScript ist ein Pseudo-Array, auch als Array-ähnliches Objekt bekannt, ein Array-ähnliches Objekt, das Daten gemäß einem Index speichert und über ein Längenattribut verfügt. Da es sich um ein Objekt handelt, verfügt ein Pseudo-Array nicht über das push()- und forEach-Funktionen eines Arrays () und andere Methoden.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Pseudo-Array (ArrayLike), auch bekannt als Array-like. Ist ein Array-ähnliches Objekt, das Daten nach Index speichert und über eine Längeneigenschaft verfügt. Aber es hat die folgenden Eigenschaften.
Daten nach Index speichern
0: xxx, 1: xxx, 2: xxx...
0: xxx, 1: xxx, 2: xxx...
具有length
属性
但是length
Länge
aberlength ist nicht dynamisch und ändert sich nicht, wenn sich die Mitglieder ändern. arrayLike.__proto__ === Object.prototype; //true arrayLike instanceof Object; //true arrayLike instanceof Array; //falseGemeinsame typische Pseudo-Arrays. einschließlich Der durch $() in jQuery erhaltenen Menge von DOM-Elementen, dem Argumentobjekt in der Funktion und dem String-Objekt.
Beispiel:
var arrLike = { 0: 'a', 1: 'b', 2: 'c', length: 3, } arrLike[1]; //'a' arrLike.length; //3 arrLike.push('d'); //Uncaught TypeError: arrLike.push is not a functionSo konvertieren Sie ein Pseudo-Array in ein echtes Array
var arrLike = { 0: 'a', 1: 'b', 2: 'c', length: 3, };
1. Durchlaufen und Hinzufügen eines leeren Arrays
var arr = []; for(var i = 0; i < arrLike.length; i++){ arr.push(arrLike[i]); }Es ist relativ einfach und leicht zu verstehen, aber die Schritte sind etwas umständlich.
2. Verwenden Sie die Slice()-Methode des Arrays. [Empfohlen] Pseudo-Array.
Beachten Sie, dass außer dem Indexwert keine weiteren Attribute im zurückgegebenen Array beibehalten werden.
Zum Beispiel wird das Kontextattribut im DOM-Pseudo-Array, das von $() in jQuery erhalten wird, nach der Konvertierung durch diese Methode nicht beibehalten.
Simulieren Sie die interne Implementierung von Slice() Methoden, Längenwert Es wird sich auch dynamisch ändern.
Darüber hinaus behält diese Methode zum direkten Ändern der Prototypenkette auch alle Attribute im Pseudo-Array bei, einschließlich Attributen, die keine Indexwerte sind.
4. Array.from()-Methode in ES2015Die Array.from()-Methode erstellt eine neue Array-Instanz aus einem Array-ähnlichen oder iterierbaren Objekt.
;[].slice.call(arrLike);
Das erhaltene Ergebnis ähnelt der zweiten Methode, nur die Attribute innerhalb des Indexwerts werden beibehalten. 【Empfohlenes Lernen:
Javascript-Tutorial für Fortgeschrittene】
Das obige ist der detaillierte Inhalt vonWas ist ein Pseudo-Array in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!