Heim > Web-Frontend > js-Tutorial > Hauptteil

Einführung in js-Arrays

不言
Freigeben: 2018-07-20 15:49:30
Original
1418 Leute haben es durchsucht

Was ist ein js-Array (ArrayLike)? Das js-Klassenarray verfügt über das Längenattribut und andere Attribute (Indizes) sind nicht negative Ganzzahlen (der Index im Objekt wird als Zeichenfolge behandelt, hier können Sie ihn als nicht negative Ganzzahlzeichenfolge verstehen). Habe die Methoden des Arrays.

Beispiel:

//类数组示例
var a = {'1':'gg','2':'love','4':'meimei',length:5};
Array.prototype.join.call(a,'+');//'+gg+love++meimei'//非类数组示例
var c = {'1':2};   //没有length属性就不是类数组
Nach dem Login kopieren

Gemeinsame Klassenarrays in JavaScript umfassen Argumentobjekte und die Rückgabeergebnisse von DOM-Methoden.
Zum Beispiel document.getElementsByTagName().

Bestimmen Sie, ob ein Objekt ein Array-ähnliches Objekt ist

function isArrayLike(o) {    
if (o &&                                // o is not null, undefined, etc.
        typeof o === 'object' &&            // o is an object
        isFinite(o.length) &&               // o.length is a finite number
        o.length >= 0 &&                    // o.length is non-negative
        o.length===Math.floor(o.length) &&  // o.length is an integer
        o.length < 4294967296)              // o.length < 2^32
        return true;                        // Then o is array-like
    else
        return false;                       // Otherwise it is not}
Nach dem Login kopieren

2. Welche Vorteile hat der Betrieb nach der Konvertierung eines js-ähnlichen Arrays in ein Array?

Da ein Klassenarray nicht über die Eigenschaften eines Arrays verfügt, können Sie nach dem Konvertieren eines Klassenarrays in ein Array leistungsstarke Methoden wie Shift, Unshift, Splice, Slice, Concat, Reverse, Sort usw. aufrufen. , was bequem und schnell ist.

3. JS-Klassen-Array-zu-Array-Methode

Array.prototype.slice.call(arrayLike)
Nach dem Login kopieren
//将arguments转化为数组后,截取第一个元素之后的所有元素
  var args = Array.prototype.slice.call(arguments,1);
Nach dem Login kopieren

Das Ergebnis von Array.prototype.slice.call(arrayLike) besteht zunächst darin, das arrayLike-Objekt in ein Array-Objekt zu konvertieren. Daher können Sie die Methoden des Arrays anschließend direkt aufrufen, z. B.

Array.prototype.slice.call(arrayLike).forEach(function(element,index){  //可以随意操作每一个element了 })
Nach dem Login kopieren

(1) Array.prototype.slice repräsentiert die Slice-Methode im Prototyp des Arrays. Beachten Sie, dass diese Slice-Methode ein Objekt vom Typ Array zurückgibt.

//slice的内部实现Array.prototype.slice = function(start,end){  
      var result = new Array();  
      start = start || 0;  
      end = end || this.length; //this指向调用的对象,当用了call后,能够改变this的指向,也就是指向传进来的对象,这是关键  
      for(var i = start; i < end; i++){  
           result.push(this[i]);  
      }  
      return result;  
 }
Nach dem Login kopieren

(2) Die einzige Methode, die call aufrufen kann, ist, dass Sie [].call nicht verwenden können, sondern [].slice verwenden müssen. Der erste Parameter von call gibt an, dass die Umgebung, in der Slice tatsächlich aufgerufen wird, zum arrayLike-Objekt wird. Es ist also so, als hätte arrayLike auch Array-Methoden.

(3) Im Anhang finden Sie eine allgemeine Funktion zum Konvertieren eines js-Arrays in ein Array

var toArray = function(s){  
    try{  
        return Array.prototype.slice.call(s);  
    } catch(e){  
            var arr = [];  
            for(var i = 0,len = s.length; i < len; i++){  
                //arr.push(s[i]);  
                 arr[i] = s[i];     //据说这样比push快            }  
             return arr;  
    }
Nach dem Login kopieren

4. Konvertieren Sie ein Array in eine Parameterliste (array-ähnlich)

Aufruf „apply“. Bei Verwendung der Methode ist der erste Parameter das Objekt (this) und der zweite Parameter eine Array-Sammlung. Hier ist eine clevere Verwendung von apply, die ein Array standardmäßig in eine Parameterliste konvertieren kann ([param1, param2, param3). ] in param1, param2, param3). Wenn wir ein Programm verwenden, um jedes Element des Arrays in eine Liste von Parametern umzuwandeln, kann es eine Weile dauern angenommen.

Verwandte Empfehlungen:

Übersicht über js-Basisarrays Array-Länge Array-Traversal

Das obige ist der detaillierte Inhalt vonEinführung in js-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage