Antworten:
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 Verwendung forEach
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 im array
Objekt gespeicherte Variable , die nur aktualisiert wird, wenn Sie das Array ändern. Es fallen also tatsächlich keine Leistungskosten an, wenn arr.length
der for
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 Sie concat()
:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
var ar3 = ar1.concat(ar2);
alert(ar1);
alert(ar2);
alert(ar3);
Das Concat wirkt sich nicht aus ar1
und wird ar2
nicht neu zugewiesen, zum Beispiel:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
ar1 = ar1.concat(ar2);
alert(ar1);
Viele tolle Infos hier .
How do I append to an array in JavaScript?
, aber concat
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ängt ar2
und dann zurückgegeben. Lassen Sie einfach den Zuweisungsteil ( ar1 = ...
) aus dieser Codezeile weg und Sie werden sehen, dass sich das Original ar1
tatsächlich nicht geändert hat. Wenn Sie eine Kopie vermeiden möchten, benötigen Sie push
. Glauben Sie mir nicht, glauben Sie den Dokumenten : "Die Methode concat () gibt ein neues Array zurück" Erster Satz in den Dokumenten für concat
.
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 der arr[arr.length]
Version besser dran , zumindest in roher Geschwindigkeit. Ich würde gerne die Ergebnisse eines IE-Laufs sehen.
Meine Benchmarking-Schleifen:
function arrpush_small() {
var arr1 = [];
for (a = 0; a < 100; a++)
{
arr1 = [];
for (i = 0; i < 5000; i++)
{
arr1.push('elem' + i);
}
}
}
function arrlen_small() {
var arr2 = [];
for (b = 0; b < 100; b++)
{
arr2 = [];
for (j = 0; j < 5000; j++)
{
arr2[arr2.length] = 'elem' + j;
}
}
}
function arrpush_large() {
var arr1 = [];
for (i = 0; i < 500000; i++)
{
arr1.push('elem' + i);
}
}
function arrlen_large() {
var arr2 = [];
for (j = 0; j < 500000; j++)
{
arr2[arr2.length] = 'elem' + j;
}
}
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:
var arr = ['first'];
arr.push('second', 'third');
console.log(arr);
Infolgedessen können Sie push.apply verwenden, um ein Array wie folgt an ein anderes Array anzuhängen:
var arr = ['first'];
arr.push('second', 'third');
arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr);
Kommentierte ES5 hat weitere Informationen über genau das, was schieben und anwenden tun.
Update 2016: Mit Spread brauchst du das nicht apply
mehr, wie:
var arr = ['first'];
arr.push('second', 'third');
arr.push(...['fourth', 'fifth']);
console.log(arr) ;
Array.prototype.push.apply()
.
Sie können zwei Arrays verwenden push
und damit arbeiten apply
.
var array1 = [11, 32, 75];
var array2 = [99, 67, 34];
Array.prototype.push.apply(array1, array2);
console.log(array1);
Es wird angehängt array2
an array1
. array1
Enthält jetzt [11, 32, 75, 99, 67, 34]
. Dieser Code ist viel einfacher als das Schreiben von for
Schleifen zum Kopieren aller Elemente im Array.
...
Operator anstelle von const a1 = [] const a2 = [5,6,7] const.push(...a2)
edit bearbeiten: Syntax-Highlight
array1.concat(array2)
in dieser Situation verwenden. Der Anruf zu push
scheint unnötig.
Mit dem neuen ES6- Spread-Operator wird das Verbinden zweier Arrays mithilfe von push
noch einfacher:
var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push(...arr2);
console.log(arr);
Dies fügt den Inhalt von arr2
am Ende von hinzu arr
.
Wenn arr
es sich um ein Array handelt und val
der Wert ist, den Sie hinzufügen möchten, verwenden Sie:
arr.push(val);
Z.B
var arr = ['a', 'b', 'c'];
arr.push('d');
console.log(arr);
Verwendung concat
:
a = [1, 2, 3];
b = [3, 4, 5];
a = a.concat(b);
console.log(a);
Javascript mit ECMAScript 5 - Standard , die nun von den meisten Browsern unterstützt wird, können Sie verwenden , apply()
um append array1
zu array2
.
var array1 = [3, 4, 5];
var array2 = [1, 2];
Array.prototype.push.apply(array2, array1);
console.log(array2); // [1, 2, 3, 4, 5]
Javascript mit ECMAScript 6- Standard, der von Chrome und FF sowie IE Edge unterstützt wird, können Sie den spread
Operator verwenden:
"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];
array2.push(...array1);
console.log(array2); // [1, 2, 3, 4, 5]
Der spread
Bediener ersetzt array2.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.
Wenn Sie zwei Arrays anhängen möchten -
var a = ['a', 'b'];
var b = ['c', 'd'];
dann könnten Sie verwenden:
var c = a.concat(b);
Und wenn Sie g
Array ( var a=[]
) einen Datensatz hinzufügen möchten, können Sie Folgendes verwenden:
a.push('g');
Die push()
Methode fügt am Ende eines Arrays neue Elemente hinzu und gibt die neue Länge zurück. Beispiel:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");
// The result of fruits will be:
Banana, Orange, Apple, Mango, Kiwi
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:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon", "Pineapple");
// The result of fruits will be:
Lemon, Pineapple, Banana, Orange, Apple, Mango
Und schließlich wird die concat()
Methode verwendet, um zwei oder mehr Arrays zu verbinden. Beispiel:
var fruits = ["Banana", "Orange"];
var moreFruits = ["Apple", "Mango", "Lemon"];
var allFruits = fruits.concat(moreFruits);
// The values of the children array will be:
Banana, Orange, Apple, Mango, Lemon
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.
var a = [1, 2, 3];
a.push(4, 5);
console.log(a);
Ausgabe:
[1, 2, 3, 4, 5]
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:
var a = [1, 2, 3];
a.unshift(4, 5);
console.log(a);
Ausgabe:
[4, 5, 1, 2, 3]
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.
var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
console.log(arr3);
Ausgabe:
[ "a", "b", "c", "d", "e", "f" ]
4) Mit der .length
Eigenschaft des Arrays können Sie am Ende des Arrays ein Element hinzufügen:
var ar = ['one', 'two', 'three'];
ar[ar.length] = 'four';
console.log( ar );
Ausgabe:
["one", "two", "three", "four"]
5) Die splice()
Methode ändert den Inhalt eines Arrays, indem vorhandene Elemente entfernt und / oder neue Elemente hinzugefügt werden:
var myFish = ["angel", "clown", "mandarin", "surgeon"];
myFish.splice(4, 0, "nemo");
//array.splice(start, deleteCount, item1, item2, ...)
console.log(myFish);
Ausgabe:
["angel", "clown", "mandarin", "surgeon","nemo"]
6) Sie können einem Array auch ein neues Element hinzufügen, indem Sie einfach einen neuen Index angeben und einen Wert zuweisen:
var ar = ['one', 'two', 'three'];
ar[3] = 'four'; // add new element to ar
console.log(ar);
Ausgabe:
["one", "two","three","four"]
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:
let array = [1, 2];
console.log([...array, 3]);
Das ursprüngliche Array bleibt unveränderlich.
Wenn Sie den höchsten Index kennen (z. B. in einer Variablen "i" gespeichert), können Sie dies tun
myArray[i + 1] = someValue;
Wenn Sie es jedoch nicht wissen, können Sie es entweder verwenden
myArray.push(someValue);
wie andere Antworten vorgeschlagen, oder Sie können verwenden
myArray[myArray.length] = someValue;
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
myArray[myArray.length + 1000] = someValue;
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:
if(myArray[i] === "undefined"){ continue; }
Wenn Sie sicher sind, dass das Array keine Nullen enthält, können Sie einfach Folgendes tun:
if(!myArray[i]){ continue; }
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)
"undefined"
. Es muss lesen void 0
! "undefined"
ist eine Zeichenfolge und "undefined" !== void 0
daher ist Ihre if(myArray[i]
falsch, es sei denn, das Array am Index i
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 verwenden undefined
, sondern verwenden sollten void 0
. Weil void 0
immer der undefinierte Wert ist, während er undefined
über so etwas definiert werden kann function x(undefined) { alert(undefined) } x("hello world")
, können Sie nicht sicher sein, ob jemand versehentlich gesetzt hat window["undefined"]=1
oder ähnliches.
Einzeles Element anhängen
//Append to the end
arrName.push('newName1');
//Prepend to the start
arrName.unshift('newName1');
//Insert at index 1
arrName.splice(1, 0,'newName1');
//1: index number, 0: number of element to remove, newName1: new element
// Replace index 3 (of exists), add new element otherwise.
arrName[3] = 'newName1';
Mehrere Elemente anhängen
//Insert from index number 1
arrName.splice(1, 0,'newElemenet1', 'newElemenet2', 'newElemenet3');
//1: index number from where insert starts,
//0: number of element to remove,
//newElemenet1,2,3: new elements
Array anhängen
//join two or more arrays
arrName.concat(newAry1, newAry2);
//newAry1,newAry2: Two different arrays which are to be combined (concatenated) to an existing array
arrName.push('newElemenet1, newElemenet2, newElemenet3')
?
arrName
lang 1
.
myarray[myarray.length] = 'new element value added to the end of the array';
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:
var myarray = [0, 1, 2, 3],
myarrayLength = myarray.length; //myarrayLength is set to 4
Ich möchte nur ein Snippet zum zerstörungsfreien Hinzufügen eines Elements hinzufügen.
var newArr = oldArr.concat([newEl]);
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:
const arr = [1, 2, 3];
const val = 4;
arr.concat([val]); // [1, 2, 3, 4]
Oder nur:
[...arr, val] // [1, 2, 3, 4]
Sie können dies mit der neuen Javascript Es 6-Funktion tun:
// initialize array
var arr = [
"Hi",
"Hello",
"Bangladesh"
];
// append new value to the array
arr= [...arr , "Feni"];
// or you can put a variable value
var testValue = "Cool";
arr = [...arr , testValue ];
console.log(arr);
// final output [ 'Hi', 'Hello', 'Bangladesh', 'Feni', 'Cool' ]
Wenn Sie 2 Arrays ohne das Duplikat kombinieren möchten, können Sie den folgenden Code ausprobieren
array_merge = function (arr1, arr2) {
return arr1.concat(arr2.filter(function(item){
return arr1.indexOf(item) < 0;
}))
}
Verwendungszweck:
array1 = ['1', '2', '3']
array2 = ['2', '3', '4', '5']
combined_array = array_merge(array1, array2)
Ausgabe: [1,2,3,4,5]
Verwenden Sie die push()
vom Array-Objekt bereitgestellte Methode , um ein einzelnes Element an ein Array anzuhängen :
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango')
console.log(fruits)
push()
mutiert das ursprüngliche Array.
Verwenden Sie stattdessen die concat()
Array-Methode, um ein neues Array zu erstellen :
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
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 als let
, da Sie a nicht neu zuweisen können const
):
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
let fruits = ['banana', 'pear', 'apple']
fruits = fruits.concat('mango')
Um ein Element an ein Array anzuhängen, können Sie es verwenden, push()
indem Sie es mit mehreren Argumenten aufrufen:
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)
Sie können auch die zuvor verwendete concat()
Methode verwenden und eine Liste von Elementen übergeben, die durch ein Komma getrennt sind:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango', 'melon', 'avocado')
console.log(allfruits)
oder ein Array:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat(['mango', 'melon', 'avocado'])
console.log(allfruits)
Denken Sie daran, dass diese Methode, wie zuvor beschrieben, das ursprüngliche Array nicht mutiert, sondern ein neues Array zurückgibt.
Ursprünglich geschrieben bei
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.
arr=['a','b','c'];
arr.push('d');
//now print the array in console.log and it will contain 'a','b','c','d' as elements.
console.log(array);
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:
var arr = [1, 2, 3, 4, 5];
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:
arr.push(6); // return [1, 2, 3, 4, 5, 6];
Wir können auch unshift verwenden. Schauen Sie sich an, wie wir dies anwenden können:
arr.unshift(0); //return [0, 1, 2, 3, 4, 5];
Sie sind Hauptfunktionen zum Hinzufügen oder Anhängen neuer Werte zu den Arrays.
Sie können die Push-Methode verwenden.
Array.prototype.append = function(destArray){
destArray = destArray || [];
this.push.call(this,...destArray);
return this;
}
var arr = [1,2,5,67];
var arr1 = [7,4,7,8];
console.log(arr.append(arr1));// [7, 4, 7, 8, 1, 4, 5, 67, 7]
console.log(arr.append("Hola"))//[1, 2, 5, 67, 7, 4, 7, 8, "H", "o", "l", "a"]
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);
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';