Heim >Web-Frontend >Front-End-Fragen und Antworten >Was ist ein Pseudo-Array in Javascript?

Was ist ein Pseudo-Array in Javascript?

青灯夜游
青灯夜游Original
2021-10-19 16:47:152775Durchsuche

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.

Was ist ein Pseudo-Array in Javascript?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Definition und Eigenschaften von Pseudo-Arrays

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

  • hat das Attribut Länge

    aberlength ist nicht dynamisch und ändert sich nicht, wenn sich die Mitglieder ändern.

Verfügt nicht über Array push(), forEach() und andere Methoden.

arrayLike.__proto__ === Object.prototype;   //true 
arrayLike instanceof Object; //true 
arrayLike instanceof Array; //false

Gemeinsame 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 function

So 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 ES2015

Die 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!

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