Interviewfragen, die oft im schriftlichen Test erscheinen. Arrays in JavaScript unterscheiden sich etwas von denen in anderen Sprachen. Um das Lernen von Array -Methoden zu erleichtern, hat der Editor die Betriebsmethoden für Arrays für Sie unten zusammengestellt. Schauen wir uns an.
Array -Schöpfung
Es gibt zwei Möglichkeiten, Arrays in JavaScript zu erstellen. Die erste besteht darin, den Array -Konstruktor zu verwenden:
var arr1 = new Array (); // Erstellen Sie ein leeres Array var arr2 = Neuarray (20); // Erstellen Sie ein Array mit 20 Elementen var arr3 = new Array ("Lily", "Lucy", "Tom"); // Erstellen Sie ein Array mit 3 SaitenDie zweite grundlegende Methode, um ein Array zu erstellen, besteht darin, eine Array -Literalnotation zu verwenden:
var arr4 = []; // Erstellen Sie ein leeres Array var arr5 = [20]; // Erstellen Sie ein Array mit 1 Element var arr6 = ["Lily", "Lucy", "Tom"]; // Erstellen Sie ein Array mit 3 Zeichenfolgen
Verwenden Sie beim Lesen und Festlegen der Werte eines Arrays quadratische Klammern und geben Sie einen 0-basierten numerischen Index des entsprechenden Werts an:
var arr6 = ["Lily", "Lucy", "Tom"]; // eine Array -Warnung erstellen (arr6 [0]); // Lilyarr6 [1] = "Mary"; // das zweite Element in Maryarr6 [3] = "Sean" ändern; // Fügen Sie den vierten Artikel zu Sean hinzu
Die Länge Eigenschaft eines Arrays in JavaScript kann geändert werden, siehe das folgende Beispiel:
var arr = ["Lily", "Lucy", "Tom"]; // Erstellen Sie ein Array mit 3 Zeichenfolgen arr [arr.length] = "Sean"; // Fügen Sie einen "Sean" arr.length = arr.length-1 am Index von 3 hinzu (dh das Ende des Arrays).
Wenn Sie feststellen müssen, ob ein Objekt ein Array -Objekt ist, können wir vor ECMascript 5 Instanz von Array verwenden, um zu beurteilen. Das Problem mit dem Instanzbetreiber ist jedoch, dass es nur eine globale Ausführungsumgebung gibt. Wenn die Webseite mehrere Frameworks enthält, gibt es tatsächlich mehr als zwei verschiedene globale Ausführungsumgebungen, daher gibt es mehr als zwei verschiedene Versionen des Array -Konstruktors. Wenn Sie ein Array von einem Framework an ein anderes übergeben, verfügt das übergebene Array über verschiedene Konstruktoren aus dem Array, das im zweiten Rahmen nativ erstellt wurde.
ECMascript 5 hat die Methode Array.isArray () hinzugefügt. Der Zweck dieser Methode besteht darin, festzustellen, ob ein Wert ein Array ist, unabhängig davon, welche globale Ausführungsumgebung er erstellt wurde.
Array -Methode
Beginnen wir mit der Einführung der Array -Methode. Die Array -Methoden enthalten Array -Prototyp -Methoden und -Methoden, die von Objektobjekten geerbt wurden. Hier stellen wir nur die Array -Prototypenmethoden ein. Die Array -Prototyp -Methoden enthalten hauptsächlich die folgenden:
verbinden()
push () und pop ()
Shift () und Unschuh ()
Sortieren()
umkehren()
concat ()
Scheibe()
spleißen()
indexof () und lastIndexof () (neu zu ES5 hinzugefügt)
foreach () (neu hinzugefügt in Es5)
map () (neu zu ES5 hinzugefügt)
filter () (neu zu ES5 hinzugefügt)
Jeder () (neu zu ES5 hinzugefügt)
einige () (neu zu ES5 hinzugefügt)
Reduzieren () und Reduzeright () (neu zu ES5 hinzugefügt)
Neue Browser -Unterstützung für ES5:
Oper 11+
Firefox 3.6+
Safari 5+
Chrom 8+
Internet Explorer 9+
Für unterstützte Browserversionen kann es über die Erweiterung des Array -Prototyps implementiert werden. Das Folgende ist eine detaillierte Einführung in die Grundfunktionen jeder Methode.
1. Join ()
Join (Separator): Gruppenelemente des Arrays in eine Zeichenfolge mit Separator als Trennzeichen. Wenn Sie ausgelassen werden, verwenden Sie Kommas standardmäßig als Trennzeichen. Diese Methode empfängt nur einen Parameter: das heißt, Separator.
var arr = [1,2,3]; console.log (arr.join ()); // 1,2,3console.log (arr.join ("-")); // 1-2-3console.log (arr); // [1, 2, 3] (das ursprüngliche Array bleibt unverändert)Mit der Methode join () kann die Zeichenfolge wiederholt werden. Geben Sie einfach die Zeichenfolge und die Anzahl der Wiederholungen ein, um die wiederholte Zeichenfolge zurückzugeben. Die Funktion ist wie folgt:
Funktion repepString (str, n) {Neuarray zurückgeben (n + 1) .Join (str);} console.log (repusedString ("ABC", 3)); // abcabcabcconsole.log (repepString ("hi", 5)); // hihihihihi2. Push () und Pop ()
Push (): Sie können eine beliebige Anzahl von Parametern empfangen, sie einzeln zum Ende des Arrays hinzufügen und die Länge des modifizierten Arrays zurückgeben.
Pop (): Entfernen Sie das letzte Element am Ende des Arrays, reduzieren Sie den Längenwert des Arrays und geben Sie dann das entfernte Element zurück.
var arr = ["lily", "lucy", "tom"]; var count = arr.push ("jack", "sean"); console.log (count); // 5console.log (arr); // ["Lily", "Lucy", "Tom", "Jack", "Sean"] var item = arr.pop (); console.log (item); // seanconsole.log (arr); // ["Lily", "Lucy", "Tom", "Jack"]3.. Shift () und Unshift ()
rever (): Löschen Sie das erste Element des ursprünglichen Arrays und geben Sie den Wert des gelöschten Elements zurück. Wenn das Array leer ist, kehren Sie undefiniert zurück.
Unschänder: Fügen Sie das Argument zum Beginn des ursprünglichen Arrays hinzu und geben Sie die Länge des Arrays zurück.
Dieser Satz von Methoden entspricht den oben genannten PUSP () und POP () -Methoden. Einer ist der Beginn des Operand -Arrays und der andere ist das Ende des Operandenarrays.
var arr = ["lily", "lucy", "tom"]; var count = arr.unshift ("jack", "sean"); console.log (count); // 5console.log (arr); // ["Jack", "Sean", "Lily", "Lucy", "Tom"] var item = arr.shift (); console.log (item); // jackconsole.log (arr); // ["Sean", "Lily", "Lucy", "Tom"]4. Sort ()
Sort (): Anordnen von Array -Elementen in aufsteigender Reihenfolge - dh der kleinste Wert liegt vorne und der größte Wert liegt am letzten.
Bei der Sortierung ruft die Sort () -Methode die TOString () -Transformationsmethode für jedes Array -Element auf und vergleicht dann die resultierende Zeichenfolge, um zu bestimmen, wie sortiert wird. Auch wenn jedes Element im Array ein numerischer Wert ist, vergleicht die Sort () -Methode eine Zeichenfolge, sodass die folgende Situation auftritt:
var arr1 = ["a", "d", "c", "b"]; console.log (arr1.sort ()); // ["A", "B", "C", "D"] arr2 = [13, 24, 51, 3]; console.log (arr2.sort ()); // [13, 24, 3, 51] (Meta -Array wird geändert)
Um das obige Problem zu lösen, kann die Sort () -Methode eine Vergleichsfunktion als Parameter empfangen, damit wir angeben, welcher Wert vor welchem Wert liegt. Die Vergleichsfunktion empfängt zwei Parameter, gibt eine negative Zahl zurück, wenn der erste Parameter vor dem zweiten sein sollte, 0 zurückgibt, wenn die beiden Parameter gleich sind, und eine positive Zahl zurückgibt, wenn der erste Parameter nach der zweiten sein sollte. Hier ist eine einfache Vergleichsfunktion:
Funktion Compare (value1, value2) {if (value1 <value2) {return -1;} else if (value1> value2) {return 1;} else {return 0;} arr2 = [13, 24, 51, 3]; console.log (arr2.sort (komparianten)); // [3, 13, 24, 51]Wenn Sie über die Vergleichsfunktion absteigende Sortierergebnisse generieren müssen, tauschen Sie einfach die von der Vergleichsfunktion zurückgegebenen Werte aus:
Funktion compare (value1, value2) {if (value1 <value2) {return 1;} else if (value1> value2) {return -1;} else {return 0;} arr2 = [13, 24, 51, 3]; console.log (arr2.sort (komparianten)); // [51, 24, 13, 3]5. Reverse ()
Reverse (): Die Reihenfolge der Array -Elemente umkehren.
var arr = [13, 24, 51, 3]; Konsole.log (arr.Reverse ()); // [3, 51, 24, 13] console.log (arr); // [3, 51, 24, 13] (Original -Array -Änderung)
6. concat ()
concat (): Fügen Sie das Argument zum ursprünglichen Array hinzu. Diese Methode erstellt zuerst eine Kopie des aktuellen Arrays, fügt dann die empfangenen Parameter zum Ende der Kopie hinzu und gibt schließlich das neu erstellte Array zurück. Ohne Parameter an die concat () -Methode zu übergeben, kopiert es einfach das aktuelle Array und gibt eine Kopie zurück.
var arr = [1,3,5,7]; var arrcopy = arr.concat (9, [11,13]); console.log (arrcopy); // [1, 3, 5, 7, 9, 11, 13] console.log (arr); // [1, 3, 5, 7] (Das ursprüngliche Array wurde nicht geändert)
Aus den obigen Testergebnissen können wir feststellen, dass: Wenn das, was in ein Array übergeben wird, sind die Parameter direkt zum Array hinzugefügt. Wenn das, was in ein Array übergeben wird, sind die Elemente im Array zum Array hinzugefügt. Aber was ist, wenn der eingebende ein zweidimensionales Array ist?
var arrcopy2 = arr.concat ([9, [11,13]]); console.log (arrcopy2); // [1, 3, 5, 7, 9, Array [2]] Konsole.log (arrcopy2 [5]); // [11, 13]
Im obigen Code ist das fünfte Element des Array von arrcopy2 ein Array mit zwei Elementen. Das heißt, die Concat -Methode kann nur jedes in das Array übergebene Element zum Array hinzufügen. Wenn einige in das Array übergebene Elemente Arrays sind, wird dieses Array -Element ARRCOPY2 als Element auch hinzugefügt.
7. Slice ()
Slice (): Gibt ein neues Array zurück, das aus Elementen aus dem angegebenen Start -Index in das End -Index im ursprünglichen Array besteht. Die Slice () -Methode kann ein oder zwei Parameter akzeptieren, dh die Start- und Endpositionen des zu zurückgegebenen Elements. Bei nur einem Parameter gibt die Slice () -Methode alle Elemente aus der angegebenen Position des Parameters bis zum Ende des aktuellen Arrays zurück. Wenn es zwei Parameter gibt, gibt die Methode das Element zwischen den Start- und Endpositionen zurück - enthält jedoch nicht das Element an der Endposition.
var arr = [1,3,5,7,9,11]; var arrcopy = arr // [1, 3, 5, 7, 9, 11] (das ursprüngliche Array hat sich nicht geändert) Konsole.log (Arrcopy); // [3, 5, 7, 9, 11] console.log (arrcopy2); // [3, 5, 7] console.log (arrcopy3); // [3, 5, 7, 11] console.log (arrcopy2); // [3, 5, 7] console.log (arrcopy3); // [3, 5, 7] console.log (arrcopy4); // [5, 7, 9]
Arrcopy legt nur einen Parameter fest, dh das Start -Index ist 1, sodass das zurückgegebene Array ein Index 1 (einschließlich des Index 1) ist und bis zum Ende des Arrays beginnt.
ARRCOPY2 legt zwei Parameter fest, wodurch ein Subtarray des Start -Index (einschließlich 1) und des Starts zum End -Abbild (ohne 4) zurückgegeben wird.
arrcopy3 legt zwei Parameter fest und beendet das Index als negative Zahl. Wenn eine negative Zahl auftritt, fügen Sie die negative Zahl zum Wert der Arraylänge (6) hinzu, um die Zahl an dieser Position zu ersetzen. Daher handelt es sich um ein Subaarrray, der von 1 bis 4 (ausgenommen) beginnt.
Beide Parameter in arrcopy4 sind negative Zahlen, daher werden sie zu der Arraylänge 6 hinzugefügt und in positive Zahlen umgewandelt, sodass sie gleichwertig zu Slice sind (2,5).
8. Splice ()
Splice (): Eine sehr leistungsstarke Array -Methode, die viele Verwendungszwecke enthält, die Löschen, Einfügen und Austausch implementieren können.
Löschen: Sie können eine beliebige Anzahl von Elementen löschen. Geben Sie einfach 2 Parameter an: den Speicherort des zu gelöschenden Elements und die Anzahl der zu gelöschten Elemente. Zum Beispiel löscht Splice (0,2) die ersten beiden Elemente im Array.
Einfügen: Sie können eine beliebige Anzahl von Elementen in die angegebene Position einfügen, nur 3 Parameter angeben: Startposition, 0 (Anzahl der zu gelöschten Elemente) und die zu eingefügten Elemente. Zum Beispiel fügt Spleiß (2,0,4,6) 4 und 6 von Position 2 des Stromarrays ein.
Ersetzen: Sie können eine beliebige Anzahl von Elementen in die angegebene Position einfügen und gleichzeitig eine beliebige Anzahl von Elementen löschen. Sie müssen nur 3 Parameter angeben: die Startposition, die Anzahl der zu gelöschten Elemente und eine beliebige Anzahl von Elementen, die eingefügt werden sollen. Die Anzahl der eingefügten Elemente muss nicht der Anzahl der gelöschten Elemente entsprechen. Zum Beispiel löscht Spleiß (2,1,4,6) das Element an der aktuellen Array -Position 2 und fügt dann 4 und 6 aus Position 2 ein.
Die Methode Splice () gibt immer ein Array zurück, das Elemente enthält, die aus dem ursprünglichen Array entfernt wurden, und wenn keine Elemente gelöscht werden, wird ein leeres Array zurückgegeben.
var arr = [1,3,5,7,9,11]; var arrremoved = arr.splice (0,2); Konsole.log (arr); // [5, 7, 9, 11] console.log (arrremoved); // [1, 3] var arrremoved2 = arr.SPLICE (2,0,4,6); console.log (arr); // [5, 7, 4, 6, 9, 11] console.log (arrremoved2); // [] var arrremoved3 = arr.splice (1,1,2,4); console.log (arr); // [5, 2, 4, 4, 6, 9, 11] Konsole.log (arrremoved3); // [7]
9. indexof () und lastIndexof ()
Indexof (): Empfängt zwei Parameter: das zu findene und (optionale) Index, der den Speicherort des Suchbegriffs angibt. Wo, schauen Sie vom Beginn des Arrays nach hinten nach oben (Position 0).
LastIndexof: Empfängt zwei Parameter: das zu findene und (optionale) Index, der den Speicherort des Suchbegriffspunkts angibt. Wo fangen Sie nach vorne vom Ende des Arrays nach vorne.
Beide Methoden geben die Position des Elements zurück, die im Array gefunden werden sollen, oder geben Sie 1 zurück, wenn nicht gefunden wird. Beim Vergleich des ersten Parameters mit jedem Element im Array wird der Konvergenzoperator verwendet.
var arr = [1,3,5,7,7,5,3,1]; console.log (arr.indexof (5)); //2console.log(arr.lastindexof(5)); //5console.log(arr.indexof(5,2)); //2console.log(arr.lastindexof(5,4)); //2console.log(arr.indexof("5 ")); //-110. foreach ()
foreach (): durchquert das Array und führt die angegebene Funktion auf jedem Element im Array aus. Diese Methode hat keinen Rückgabewert. Die Parameter sind alle Funktionstypen, und es werden standardmäßig Parameter übergeben. Die Parameter sind: der durchquerte Array -Inhalt; Der entsprechende Array -Index, das Array selbst.
var arr = [1, 2, 3, 4, 5]; arr.foreach (Funktion (x, Index, a) {console.log (x + '|' + index + '|' + (a === arr));}); // Die Ausgabe ist: // 1 | true // 2 | 1 | true // 3 | 2 | true // 4 | true |11. map ()
map (): bezieht sich auf "map", das eine bestimmte Funktion auf jedem Element im Array ausführt und das Array zurückgibt, das aus dem Ergebnis jedes Funktionsaufrufs besteht.
Der folgende Code verwendet die Kartenmethode, um jede Nummer im Array zu quadrieren.
var arr = [1, 2, 3, 4, 5]; var arr2 = arr.map (Funktion (Element) {Return item*item;}); console.log (arr2); // [1, 4, 9, 16, 25]12. filter ()
Filter (): "Filter" -Funktion, jedes Element im Array wird eine bestimmte Funktion ausgeführt und ein Array zurückgegeben, das den Filterbedingungen erfüllt.
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; var arr2 = arr.filter (Funktion (x, index) {return index % 3 === 0 || x> = 8;}); console.log (arr2); // [1, 4, 7, 8, 9, 10]13. Jeder ()
Jeder (): Bestimmt, ob jedes Element im Array die Bedingung erfüllt. Nur wenn alle Gegenstände die Bedingung erfüllen, werden wahr zurückgegeben.
var arr = [1, 2, 3, 4, 5]; var arr2 = arr.Every (Funktion (x) {return x <10;}); console.log (arr2); // truevar arr3 = arr.Every (Funktion (x) {return x <3;}); console.log (arr3); // FALSCH14. einige ()
Einige (): Bestimmt, ob es in dem Array Elemente gibt, die den Bedingungen erfüllen. Solange einer von ihnen die Bedingungen erfüllt, wird er wahr zurückkehren.
var arr = [1, 2, 3, 4, 5]; var arr2 = arr.some (Funktion (x) {return x <3;}); console.log (arr2); // truevar arr3 = arr.some (Funktion (x) {return x <1;}); console.log (arr3); // FALSCH15. Reduzieren () und Reduzierlicht ()
Beide Methoden implementieren die Iterie über alle Elemente des Arrays und erstellen dann einen endgültigen zurückgegebenen Wert. Die Methode record () startet vom ersten Element des Arrays und geht es einzeln bis zum Ende durch. Reduderight () startet vom letzten Punkt des Arrays und durchquert nach vorne zum ersten Element.
Beide Methoden empfangen zwei Parameter: eine Funktion, die auf jedem Element und (optional) als Anfangswert der Zusammenführungsbasis aufgerufen wird.
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.
Der folgende Code verwendet record (), um die Summe des Arrays zu implementieren, und der Anfangswert von 10 wird dem Array zu Beginn hinzugefügt.
var values = [1,2,3,4,5]; var sum = values.reduceright (function (prev, cur, index, array) {return prew + cur;}, 10); console.log (sum); // 25Die oben genannte ist eine vollständige Sammlung von vom Editor eingeführten JavaScript -Array -Methoden (empfohlen). Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!