Array -Typen in JavaScript unterscheiden sich stark von denen in anderen Sprachen. Jedes Element in JavaScript kann jede Art von Daten enthalten. Darüber hinaus kann die Größe von JavaScript -Arrays dynamisch angepasst werden und automatisch wachsen, wenn Daten hinzugefügt werden, um neue Daten aufzunehmen .
Es gibt zwei grundlegende Formen des Erstellens eines Arrays.
1.Array Constructor
var cities = new Array ();
Wenn Sie die Anzahl der im Voraus gespeicherten Elemente kennen, können Sie diese Nummer auch an den Konstruktor übergeben, der automatisch zum Wert des Längenattributs wird.
var cities = New Array (3);
Sie können auch die Elemente übergeben, die im Array an den Array -Konstruktor enthalten sein sollten.
var cities = New Array ("Shanghai", "Peking", "Shenzhen");Der neue Bediener kann beim Erstellen eines Arrays weggelassen werden:
var städte = Array (3); // Erstellen Sie ein Array mit 3 Elementen
2. Array buchstäblicher Darstellung
Die Array -Literalbeschreibung wird durch ein Paar quadratische Klammern dargestellt, die Array -Elemente enthalten, die durch Kommas getrennt sind, wie folgt:
var städte = ["shanghai", "peking", "shenzhen"]; var städte = []; // Erstellen Sie eine leere Zeichenfolge
Wenn Sie den Wert eines Arrays lesen und festlegen, verwenden Sie quadratische Klammern und geben Sie einen numerischen Index an, der auf 0 basiert (basierend auf 0, von 0, der erste Term 0, der zweite Term 1 usw.), wie unten gezeigt:
var städte = ["Shanghai", "Peking", "Shenzhen"]; Warn (Städte [0]); // "Shanghai" Städte [1] = "Hongkong"; // das zweite Element "Peking" in "Hongkong" -Städten ändern [3] = "Taiwan" // Fügen Sie ein neues Element hinzu
Die Anzahl der Elemente im Array wird in der Längeneigenschaft gespeichert und ist nicht schreibgeschützt . Durch das Einstellen der Länge Eigenschaft können Sie Elemente am Ende des Arrays entfernen oder dem Array neue Elemente hinzufügen.
var städte = ["shanghai", "pejing", "shenzhen"]; Städte.Length = 2; alarm (Städte [2]); // undefiniert
Mit dieser Länge Eigenschaft können Sie am Ende des Arrays neue Elemente hinzufügen:
var städte = ["shanghai", "peking", "shenzhen"]; Städte [Städte] = "Hongkong";
1. Array erkennen
ECMascript5 hat die Methode von Array.IsArray () hinzugefügt, die feststellt, ob ein Wert ein Array ist, unabhängig davon, welche globale Ausführungsumgebung er erstellt wird. Die Verwendung ist wie folgt:
if (array.isarray (value)) {// Führen Sie einige Operationen im Array} durch2. Konvertierungsmethode
Alle Objekte haben Methoden Tolocalestring (), ToString () und ValueOf (). Die Methode toString () des Arrays wird als toString () bezeichnet, um eine von der Stringform jedes Wertes im Array gespannte Zeichenfolge zurückzugeben. Zum Beispiel:
var cities = ["shanghai", "peking", "shenzhen"]; alarm (städt.tostring ()); // Shanghai, Peking, Shenzhenert (Städte.Valueof ()); // Shanghai, Peking, Shenzhenert (Städte); // Shanghai, Peking, Shenzhenert (Städte); // Shanghai, Peking, Shenzhen
HINWEIS: Da Alert () String -Parameter empfangen muss, wird die Methode toString () im Hintergrund aufgerufen, sodass das gleiche Ergebnis des Aufrufens der Methode toString () direkt wird.
Darüber hinaus gibt die Tolocalestring () -Methode häufig den gleichen Wert wie toString () und valueOf () zurück. Die Differenz besteht darin, dass die Methode Tolocalestring (), um den Wert jedes Elements zu erhalten, und nicht die Methode für toString () aufgerufen wird . Zum Beispiel:
var p1 = {tolocalestring: function () {return "p1 tolocalestring"; }, toString: function () {return "p1 toString"; }}; var p2 = {tolocalestring: function () {return "p2 tolocalestring"; }, toString: function () {return "p2 toString"; }}; var p = [p1, p2]; Alarm (p); alert (p.tostring ()); Alert (p.Tolocalestring ());Das Ergebnis zeigt, dass die ToString -Methode in der ersten und zweiten Linie aufgerufen wird und die tolocalestring -Methode in der dritten Zeile aufgerufen wird.
Die Methoden Tolocalestring (), ToString () und ValueOf (), die vom Array geerbt wurden, gibt die Array-Elemente standardmäßig in Form von von Kommas getrennten Zeichenfolgen zurück. Mit der Methode join () können Sie verschiedene Zeichen verwenden, um die Zeichenfolge aufzuteilen und dann die Zeichenfolge zurückzugeben, die alle Array -Elemente enthält.
var städte = ["Shanghai", "Peking", "Shenzhen"]; Warn (Städte); // Shanghai, Peking, Shenzhenert (Städte.Join (",")); // Shanghai, Peking, Shenzhenert (Städte3. Stack -Methode
Ein Stack ist eine LESTO-Datenstruktur (Last-In-First-Out), und das Einfügen und Entfernen von Datenelementen im Stapel kann nur oben im Stapel auftreten. JavaScript-Arrays bieten PUSP () und POP () -Methoden zur Implementierung von Stapel-ähnliches Verhalten.
Push () Methode
Sie können eine beliebige Anzahl von Parametern nehmen, sie zum Ende des Arrays hinzufügen und die Länge des Arrays ändern.
var params = new array (); var count = params.push ("a", "b"); alert (params); // a, Balert (Graf); // 2Aus dem obigen Beispiel können wir sehen, dass die Anzahl der eingefügten Begriffe, die von der PUSP () -Methode zurückgegeben wurden.
pop () Methode
Entfernen Sie das letzte Element vom Ende des Arrays, reduzieren Sie die Länge des Arrays und geben Sie das entfernte Element zurück.
var params = new array (); var count = params.push ("a", "b", "c"); var item = params.pop (); alert (item); // Calendart (params.length); // 24. Warteschlangenmethode
Die Zugriffsregel für die Datenstruktur der Warteschlange ist erstmals (FIFO), dh die Elemente vom Ende der Warteschlange hinzugefügt und die Elemente vom vorderen Ende der Warteschlange entfernt.
SHIRT () Methode
Die SHIRT () -Methode ist in JavaScript bereitgestellt, wodurch das erste Element im Array entfernt und das Element zurückgegeben wird und gleichzeitig das Längenattribut des Arrays verändert.
var params = new array (); var count = params.push ("a", "b", "c"); var item = params.shift (); // den ersten Element Alert (Element) erhalten; // aAalert (params.length); // 2Unshift () Methode
JavaScript liefert auch die Unshift () -Methode, mit der ein beliebiges Element zum vorderen Ende des Arrays hinzugefügt und die Länge des neuen Arrays zurückgegeben werden kann.
var params = new array (); var count1 = params.unshift ("a"); alert (count1); // 1Alert (Params); // avar count2 = params.unshift ("b"); alert (count2); // 2alert (params); // b, avar count3 = params.unshift ("c", "d"); alert (params); // c, d, b, aEs wurde beobachtet, dass, wenn es zu einem Zeitpunkt mehrere Begriffe gibt (), diese Begriffe in die Reihenfolge, dh der erste Parameter, in die Vorderseite eingefügt wird. Wie im obigen Beispiel wird zum ersten Mal "A" eingefügt, "B" zum zweiten Mal eingefügt, und es gibt mehrere Begriffe, wenn das dritte Mal mehrere Begriffe ist, aber die Reihenfolge ist C vor und D in der Rückseite.
5. Methode neu
Es gibt zwei Methoden, die direkt zur Neuordnung im Array verwendet werden.
Reverse () Methode
Die Reverse () -Methode umdreht die Reihenfolge der Array -Elemente.
var values = [1,2,3,4,5]; Werte.Reverse (); alarm (Werte); // 5,4,3,2,1
Sort () Methode
Standardmäßig ordnen die Sort () -Methode Array -Elemente in aufsteigender Reihenfolge an. Um die Sortierung zu erreichen, ruft die Sort () -Methode die TOString () -Transformationsmethode jedes Array -Elements auf und vergleicht dann die resultierende Zeichenfolge. Daher vergleicht die Sort () -Methode Zeichenfolgen .
VAR -Werte = [3,5,53,2,34]; Werte.Sort (); alert (Werte); // 2,3,34,5,53
Wir können jedoch sagen, dass diese Sortierung grundsätzlich bedeutungslos ist und wir die numerischen Werte sortieren müssen. Die Sort () -Methode kann eine Vergleichsfunktion als Argument zum Angeben der Sortierregeln erhalten .
Die Vergleichsfunktion empfängt zwei Parameter, gibt eine negative Zahl zurück, wenn der erste Parameter vor dem zweiten Parameter vorliegt, 0 zurückgibt, wenn die beiden Parameter gleich sind, und eine positive Zahl zurückgibt, wenn der erste Parameter nach dem zweiten Parameter vorliegt.
Funktion Compare (value1, value2) {if (value1 <value2) {return -1; } else if (value1> value2) {return 1; } else {return 0; }} var values = [3,5,53,2,34]; Werte.Sort (Compare); Warn (Werte); // 2,3,4,34,536. Betriebsmethode
concat () Methode
Ein neues Array kann basierend auf allen Elementen im aktuellen Array erstellt werden. Diese Methode erstellt eine Kopie des aktuellen Arrays, fügt die Parameter zum Ende der Kopie hinzu und gibt das neu erstellte Array zurück. Wenn ein oder mehrere Arrays an die concat () -Methode übergeben werden, wird jedes Element im Array zum Array hinzugefügt.
var arrays = ["a", "b", "c"]; var arrays2 = arrays.concat ("d", ["e", "fe"]); alert (arrays); // a, b, calert (arrays2); // a, b, c, d, e, fSlice () Methode
Erstellt ein neues Array, das auf einem oder mehreren Elementen im aktuellen Array basiert. Die Slice () -Methode kann ein oder zwei Parameter empfangen, d. H. Die Start- und Endpositionen des zu zurückgegebenen Elements . Wenn es nur einen Parameter gibt, wird alle Elemente vom Startelement bis zum Ende des Arrays zurückgegeben. Wenn es zwei Parameter gibt, gibt es das Element zwischen der Startposition und der Endposition zurück (ohne das Endelement). Die Slice () -Methode wirkt sich nicht auf das ursprüngliche Array aus.
var städte = ["peking", "shanghai", "shenzhen", "Guangzhou"]; var städte2 = Städte.Slice (1); var Städte3 = Städte.Slice (1,3); alert (Städte2); // Shanghai, Shenzhen, Guangzhou Alert (Städte3); // Shanghai, Shenzhen
Splice () Methode
Die Splice () -Methode wird hauptsächlich zum Einfügen von Elementen in die Mitte des Arrays verwendet, und es gibt 3 Möglichkeiten, sie zu verwenden:
• Löschen kann eine beliebige Anzahl von Elementen löschen, 2 Parameter angeben: Das erste Element, das gelöscht wird, und die Anzahl der zu löschen
var städte = ["Peking", "Shanghai", "Shenzhen", "Guangzhou"]; Städte.Splice (1,3); Warn (Städte); // Peking
• Einfügen Sie eine beliebige Anzahl von Elementen in die angegebene Position. Geben Sie 3 Parameter an: Startposition, 0 (Anzahl der zu gelöschten Elemente) und Element, die eingefügt werden sollen
var städte = ["peking", "shanghai", "shenzhen", "Guangzhou"]; Städte.SPLICE (1,0, "Hongkong"); Warn (Städte); // Peking, Hongkong, Shanghai, Shenzhen, Guangzhou
• Ersetzen Sie Elemente, die die angegebene Position ersetzen können. Geben Sie 3 Parameter an: Startposition, Element, die gelöscht werden sollen, und jedes Element, das eingefügt werden soll.
var cities = ["Peking", "Shanghai", "Shenzhen", "Guangzhou"]; Städte.Splice (1,2, "Hongkong"); Warn (Städte); // Peking, Hongkong, Guangzhou
7. Positionsmethode
In JavaScript gibt es zwei Positionsmethoden: Indexof () -Methode und lastIndexof () -Methode. Beide Methoden empfangen zwei Parameter: das zu findene und (optionale) Index, der den Speicherort des Suchbegriffspunkts angibt.
Die Indexof () -Methode bedeutet, vom Beginn des Arrays nach hinten zu schauen, während der letzteIndexof () vom Ende des Arrays beginnt. Sie alle geben die Position des im Array gefundenen Elements zurück und -1, wenn nicht gefunden. Kongruent wird verwendet, wenn der erste Parameter mit jedem Element im Array verglichen wird.
var nums = [1,2,3,4,5,6]; alert (nums.indexof (3)); // 2alert (nums.lastindexof (5)); // 4alert (nums.indexof (3,1)); // 2alert (nums.lastindexof (4,4)); // 3
8. Iterationsmethode
JavaScript bietet 5 iterative Methoden für Arrays. Jede Methode empfängt zwei Parameter: die Funktion, die auf jedem Element ausgeführt wird, und (optional) des Umfangsobjekts, das die Funktion ausführt - was den Wert davon beeinflusst. Parameter, die übergeben werden müssen: Der Wert des Array -Elements, die Position des Elements im Array und das Array -Objekt selbst.
• Jede (): Ausleitet eine bestimmte Funktion auf jedem Element im Array, und wenn die Anzahl der Zeilen für jedes Element true zurückgibt, gibt sie True zurück.
• filter (): Führen Sie eine bestimmte Funktion auf jedem Element im Array aus und geben Sie ein Array zurück, das aus Elementen besteht, die true zurückgeben.
• foreach (): führt eine bestimmte Funktion auf jedem Element im Array aus, ohne einen Wert zurückzugeben
• MAP (): Eine Funktion, die aus dem Ausführen einer bestimmten Funktion auf jedem Element im Array besteht und das Ergebnis jedes Funktionsaufrufs zurückgibt.
• Einige (): Ausleitet eine bestimmte Funktion auf jedem Element im Array. Wenn ein Element true zurückgibt, gibt die Funktion true zurück.
Keine der oben genannten Methoden ändert die im Array enthaltenen Werte.
9. Methode zusammenführen
Es gibt zwei Methoden zum Zusammenführen von Arrays in JavaScript: record () und receright (). Beide Methoden iterieren alle Elemente des Arrays und erstellen dann einen endgültigen zurückgegebenen Wert. Wo, die Verrückungs () -Methode startet vom ersten Element des Arrays, und Reduceright () startet vom letzten Punkt des Arrays.
Sie können beide zwei Parameter empfangen: eine Funktion, die auf jedem Element aufgerufen wird, und (optional) als Anfangswert der Zusammenführungsbasis. Die Funktion, die an record () und receright () übergeben wurde, empfängt 4 Parameter: den vorherigen Wert, der aktuelle Wert, den Index des Elements und das Array -Objekt. Jeder von dieser Funktion zurückgegebene Wert wird automatisch als der erste Parameter an das nächste Element übergeben. Die erste Iteration erfolgt im zweiten Term des Arrays, sodass der erste Parameter der erste Term des Arrays ist, und der zweite Parameter ist der zweite Term des Arrays.
var values = [1,2,3,4,5]; var sum = Werte.Reduce (Funktion (prev, cur, index, array) {return prew+cur;}); alert (sum); // 15Das erste Mal, dass die Rückruffunktion ausgeführt wird, ist die Präv ist 1 und CUR beträgt 2.. Das zweite Mal ist die Präv 3 (1+2), CUR 3 (Wert der dritten Term des Arrays), da er weiß, dass auf jedes Element zugegriffen wird.
Reduderight () hat ähnliche Funktionen, aber die Richtung ist entgegengesetzt.
Die obige umfassende Analyse von JavaScript: Array -Typ ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.