Verwenden Sie die Array.prototype.push
Methode, um Werte an ein Array anzuhängen:
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
Mit der push()
Funktion können Sie in einem einzigen Aufruf mehr als einen Wert an ein Array anhängen:
// initialize array
var arr = ["Hi", "Hello", "Bonjour", "Hola"];
// append multiple values to the array
arr.push("Salut", "Hey");
// display all values
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
Aktualisieren
Wenn Sie die Elemente eines Arrays zu einem anderen Array hinzufügen möchten, können Sie Folgendes verwenden firstArray.concat(secondArray)
:
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
Aktualisieren
Nur eine Ergänzung zu dieser Antwort, wenn Sie einen Wert an den Anfang eines Arrays anhängen möchten, dh an den ersten Index, können Sie ihn Array.prototype.unshift
für diesen Zweck verwenden.
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
Es unterstützt auch das Anhängen mehrerer Werte gleichzeitig push
.
for
(verwenden.forEach
).length
Immobilie zu optimieren . Der Dolmetscher macht selbst einen tollen Job und es wird in der realen Welt keinen Unterschied machen, ob Sie ihn weg optimieren oder nicht. Wenn Ihr Array so groß wird, dass eine Optimierung.length
tatsächlich helfen würde, ist ein Array höchstwahrscheinlich nicht mehr die richtige Datenstruktur. Die VerwendungforEach
hat ihre Vorteile, aber es ist höchst zweifelhaft, ob eine Leistungssteigerung eine davon ist, da der Funktionsaufruf für jede Iteration Kosten verursacht und nichts spart.length
Eigenschaft eines Arrays wird nicht bei jedem Aufruf berechnet. Es handelt sich um eine imarray
Objekt gespeicherte Variable , die nur aktualisiert wird, wenn Sie das Array ändern. Es fallen also tatsächlich keine Leistungskosten an, wennarr.length
derfor
Zustand berücksichtigt wird.forEach
Rückruffunktionen einbinden (einige von ihnen tun dies wahrscheinlich bereits) und es wird keinen Unterschied im generierten Maschinencode geben, wenn die Funktion oft genug aufgerufen wird, um kompiliert anstatt interpretiert zu werden die Laufzeit. Es gilt der gleiche Rat wie für jede Sprache, die eigentlich kein Assembler ist.Wenn Sie nur eine einzelne Variable anhängen,
push()
funktioniert dies einwandfrei. Wenn Sie ein anderes Array anhängen müssen, verwenden Sieconcat()
:Das Concat wirkt sich nicht aus
ar1
und wirdar2
nicht neu zugewiesen, zum Beispiel:Viele tolle Infos hier .
quelle
How do I append to an array in JavaScript?
, aberconcat
tatsächlich erstellt ein neues Array. Das ist ein wichtiger Unterschied! Stattdessen würde ich sagen, dass die folgende Antwort von Omnimike tatsächlich die beste ist: Verwenden Sie Push.apply , um ein ganzes Array auf ein vorhandenes Array zu verschieben, ohne ein neues zu erstellen.ar1 = ar1.concat(ar2);
wird anar1
ar1
, angehängtar2
und dann zurückgegeben. Lassen Sie einfach den Zuweisungsteil (ar1 = ...
) aus dieser Codezeile weg und Sie werden sehen, dass sich das Originalar1
tatsächlich nicht geändert hat. Wenn Sie eine Kopie vermeiden möchten, benötigen Siepush
. Glauben Sie mir nicht, glauben Sie den Dokumenten : "Die Methode concat () gibt ein neues Array zurück" Erster Satz in den Dokumenten fürconcat
.ar2
durcheinander gebracht , was oben sowieso der Fall ist. Das Ergebnis.push
im Szenario wird sein= [ar1, [ar2]]
. .concat löst dieses Problem, jedoch mit Geschwindigkeitseinbußen und einem neuen Array. Um es.push
in Array-Anhängen richtig zu verwenden, schleifen Sie zuerst das enthaltene Element aus und drücken Sie jedes.ar2.forEach(each => { ar1.push(each); });
Einige schnelle Benchmarking-Tests (jeder Test = 500.000 angehängte Elemente und die Ergebnisse sind Durchschnittswerte mehrerer Läufe) zeigten Folgendes:
Firefox 3.6 (Mac):
arr[arr.length] = b
ist schneller (300 ms gegenüber 800 ms)arr.push(b)
ist schneller (500 ms gegenüber 900 ms)Safari 5.0 (Mac):
arr[arr.length] = b
ist schneller (90 ms gegenüber 115 ms)arr[arr.length] = b
ist schneller (160 ms gegenüber 185 ms)Google Chrome 6.0 (Mac):
Ich mag die
arr.push()
Syntax besser, aber ich denke, ich wäre mit derarr[arr.length]
Version besser dran , zumindest in roher Geschwindigkeit. Ich würde gerne die Ergebnisse eines IE-Laufs sehen.Meine Benchmarking-Schleifen:
quelle
Ich denke, es ist erwähnenswert, dass Push mit mehreren Argumenten aufgerufen werden kann, die der Reihe nach an das Array angehängt werden. Zum Beispiel:
Infolgedessen können Sie push.apply verwenden, um ein Array wie folgt an ein anderes Array anzuhängen:
Kommentierte ES5 hat weitere Informationen über genau das, was schieben und anwenden tun.
Update 2016: Mit Spread brauchst du das nicht
apply
mehr, wie:quelle
Array.prototype.push.apply()
.Sie können zwei Arrays verwenden
push
und damit arbeitenapply
.Es wird angehängt
array2
anarray1
.array1
Enthält jetzt[11, 32, 75, 99, 67, 34]
. Dieser Code ist viel einfacher als das Schreiben vonfor
Schleifen zum Kopieren aller Elemente im Array.quelle
...
Operator anstelle vonconst a1 = [] const a2 = [5,6,7] const.push(...a2)
edit bearbeiten: Syntax-Highlightarray1.concat(array2)
in dieser Situation verwenden. Der Anruf zupush
scheint unnötig.Mit dem neuen ES6- Spread-Operator wird das Verbinden zweier Arrays mithilfe von
push
noch einfacher:Dies fügt den Inhalt von
arr2
am Ende von hinzuarr
.Babel REPL Beispiel
quelle
Wenn
arr
es sich um ein Array handelt undval
der Wert ist, den Sie hinzufügen möchten, verwenden Sie:Z.B
quelle
Verwendung
concat
:quelle
Javascript mit ECMAScript 5 - Standard , die nun von den meisten Browsern unterstützt wird, können Sie verwenden ,
apply()
um appendarray1
zuarray2
.Javascript mit ECMAScript 6- Standard, der von Chrome und FF sowie IE Edge unterstützt wird, können Sie den
spread
Operator verwenden:Der
spread
Bediener ersetztarray2.push(...array1);
durch,array2.push(3, 4, 5);
wenn der Browser die Logik denkt.Bonuspunkt
Wenn Sie eine weitere Variable erstellen möchten, um alle Elemente aus beiden Arrays zu speichern, können Sie Folgendes tun:
ES5
var combinedArray = array1.concat(array2);
ES6
const combinedArray = [...array1, ...array2]
Der Spread-Operator (
...
) verteilt alle Elemente aus einer Sammlung.quelle
Wenn Sie zwei Arrays anhängen möchten -
dann könnten Sie verwenden:
Und wenn Sie
g
Array (var a=[]
) einen Datensatz hinzufügen möchten, können Sie Folgendes verwenden:quelle
Die
push()
Methode fügt am Ende eines Arrays neue Elemente hinzu und gibt die neue Länge zurück. Beispiel:Die genaue Antwort auf Ihre Frage ist bereits beantwortet. Schauen wir uns jedoch einige andere Möglichkeiten an, um einem Array Elemente hinzuzufügen.
Die
unshift()
Methode fügt am Anfang eines Arrays neue Elemente hinzu und gibt die neue Länge zurück. Beispiel:Und schließlich wird die
concat()
Methode verwendet, um zwei oder mehr Arrays zu verbinden. Beispiel:quelle
Es gibt verschiedene Möglichkeiten, ein Array in JavaScript anzuhängen:
1) Die
push()
Methode fügt ein oder mehrere Elemente am Ende eines Arrays hinzu und gibt die neue Länge des Arrays zurück.Ausgabe:
2) Die
unshift()
Methode fügt ein oder mehrere Elemente am Anfang eines Arrays hinzu und gibt die neue Länge des Arrays zurück:Ausgabe:
3) Die
concat()
Methode wird verwendet, um zwei oder mehr Arrays zusammenzuführen. Diese Methode ändert die vorhandenen Arrays nicht, sondern gibt stattdessen ein neues Array zurück.Ausgabe:
4) Mit der
.length
Eigenschaft des Arrays können Sie am Ende des Arrays ein Element hinzufügen:Ausgabe:
5) Die
splice()
Methode ändert den Inhalt eines Arrays, indem vorhandene Elemente entfernt und / oder neue Elemente hinzugefügt werden:Ausgabe:
6) Sie können einem Array auch ein neues Element hinzufügen, indem Sie einfach einen neuen Index angeben und einen Wert zuweisen:
Ausgabe:
quelle
push
bewirkt es: Es modifiziert das ursprüngliche Array, indem neue Elemente darauf verschoben werden. Lese ich das falsch oder sollte das bearbeitet werden?Jetzt können Sie die ES6-Syntax nutzen und einfach Folgendes tun:
Das ursprüngliche Array bleibt unveränderlich.
quelle
Wenn Sie den höchsten Index kennen (z. B. in einer Variablen "i" gespeichert), können Sie dies tun
Wenn Sie es jedoch nicht wissen, können Sie es entweder verwenden
wie andere Antworten vorgeschlagen, oder Sie können verwenden
Beachten Sie, dass das Array auf Null basiert, sodass .length den höchsten Index plus Eins zurückgibt.
Beachten Sie auch, dass Sie nicht in der richtigen Reihenfolge hinzufügen müssen und Werte wie in überspringen können
In diesem Fall haben die dazwischen liegenden Werte den Wert undefined.
Es wird daher empfohlen, beim Durchlaufen eines JavaScript zu überprüfen, ob zu diesem Zeitpunkt tatsächlich ein Wert vorhanden ist.
Dies kann folgendermaßen geschehen:
Wenn Sie sicher sind, dass das Array keine Nullen enthält, können Sie einfach Folgendes tun:
Stellen Sie in diesem Fall natürlich sicher, dass Sie myArray [i] nicht als Bedingung verwenden (wie einige Leute im Internet basierend auf dem Ende vorschlagen, dass sobald ich größer als der höchste Index bin, undefiniert zurückgegeben wird, der ausgewertet wird falsch)
quelle
"undefined"
. Es muss lesenvoid 0
!"undefined"
ist eine Zeichenfolge und"undefined" !== void 0
daher ist Ihreif(myArray[i]
falsch, es sei denn, das Array am Indexi
ist auf die Zeichenfolge mit dem Inhalt festgelegt, der äquivalent zu ist'u'+'n'+'d'+'e'+'f'+'i'+'n'+'e'+'d'
. Beachten Sie auch, dass Sie nicht verwendenundefined
, sondern verwenden solltenvoid 0
. Weilvoid 0
immer der undefinierte Wert ist, während erundefined
über so etwas definiert werden kannfunction x(undefined) { alert(undefined) } x("hello world")
, können Sie nicht sicher sein, ob jemand versehentlich gesetzt hatwindow["undefined"]=1
oder ähnliches.Einzeles Element anhängen
Mehrere Elemente anhängen
Array anhängen
quelle
arrName.push('newElemenet1, newElemenet2, newElemenet3')
?arrName
lang1
.concat()
kann natürlich auch mit zweidimensionalen Arrays verwendet werden. Keine Schleife erforderlich.quelle
Lassen Sie die Array-Längeneigenschaft die Arbeit erledigen:
myarray.length gibt die Anzahl der Zeichenfolgen im Array zurück. JS basiert auf Null, sodass der nächste Elementschlüssel des Arrays die aktuelle Länge des Arrays ist. EX:
quelle
quelle
Hängen Sie einen Wert an ein Array an
Da Array.prototype.push am Ende eines Arrays ein oder mehrere Elemente hinzufügt und die neue Länge des Arrays zurückgibt , möchten wir manchmal nur das neue aktuelle Array abrufen, damit wir so etwas tun können:
Oder nur:
quelle
Wenn Sie den ES6 verwenden, können Sie dazu den Spread- Operator verwenden.
quelle
Sie können dies mit der neuen Javascript Es 6-Funktion tun:
quelle
Wenn Sie 2 Arrays ohne das Duplikat kombinieren möchten, können Sie den folgenden Code ausprobieren
Verwendungszweck:
Ausgabe: [1,2,3,4,5]
quelle
Fügen Sie ein einzelnes Element hinzu
Verwenden Sie die
push()
vom Array-Objekt bereitgestellte Methode , um ein einzelnes Element an ein Array anzuhängen :push()
mutiert das ursprüngliche Array.Verwenden Sie stattdessen die
concat()
Array-Methode, um ein neues Array zu erstellen :Beachten Sie, dass
concat()
dem Array kein Element hinzugefügt wird, sondern ein neues Array erstellt wird, das Sie einer anderen Variablen zuweisen oder dem ursprünglichen Array neu zuweisen können (deklarieren Sie es alslet
, da Sie a nicht neu zuweisen könnenconst
):Fügen Sie mehrere Elemente hinzu
Um ein Element an ein Array anzuhängen, können Sie es verwenden,
push()
indem Sie es mit mehreren Argumenten aufrufen:Sie können auch die zuvor verwendete
concat()
Methode verwenden und eine Liste von Elementen übergeben, die durch ein Komma getrennt sind:oder ein Array:
Denken Sie daran, dass diese Methode, wie zuvor beschrieben, das ursprüngliche Array nicht mutiert, sondern ein neues Array zurückgibt.
quelle
Sie .push () diesen Wert in. Beispiel: array.push (Wert);
quelle
Wenn Sie einen einzelnen Wert an ein Array anhängen möchten, verwenden Sie einfach die Push-Methode. Am Ende des Arrays wird ein neues Element hinzugefügt.
Wenn Sie jedoch mehrere Elemente hinzufügen möchten, speichern Sie die Elemente in einem neuen Array und verknüpfen Sie das zweite Array mit dem ersten Array.
quelle
Wir haben keine Append-Funktion für Array in Javascript, aber wir haben Push und Unshift . Stellen Sie sich vor, Sie haben das Array unten:
und wir möchten einen Wert an dieses Array anhängen, wir können tun, arr.push (6) und es wird 6 am Ende des Arrays hinzufügen:
Wir können auch unshift verwenden. Schauen Sie sich an, wie wir dies anwenden können:
Sie sind Hauptfunktionen zum Hinzufügen oder Anhängen neuer Werte zu den Arrays.
quelle
Sie können die Push-Methode verwenden.
quelle
push()
Fügt am Ende eines Arrays ein neues Element hinzu.pop()
Entfernt ein Element vom Ende eines Arrays.Um ein Objekt (z. B. eine Zeichenfolge oder eine Zahl) an ein Array anzuhängen, verwenden Sie -
array.push(toAppend);
quelle
Anhängen von Elementen an ein Array
quelle
Sie können push () verwenden, wenn Sie Werte hinzufügen möchten, z
arr.push("Test1", "Test2");
Wenn Sie ein Array haben, können Sie concat () verwenden, z
Array1.concat(Array2)
Wenn Sie nur ein Element hinzufügen möchten, können Sie auch die Länge menthod ausprobieren, z
array[aray.length] = 'test';
quelle