Wie kann man etwas an ein Array anhängen?

2893

Wie hänge ich ein Objekt (z. B. eine Zeichenfolge oder eine Zahl) an ein Array in JavaScript an?

Interstar
quelle

Antworten:

4387

Verwenden Sie die Array.prototype.pushMethode, 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.unshiftfü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.

Jack Bashford
quelle
131
Beachten Sie, dass der Rückgabewert von .push nicht das Array (oder ein neues wie .concat) ist, sondern eine Ganzzahl, die die neue Länge des Arrays darstellt.
Jay
8
@ RST: überhaupt nicht verwenden for(verwenden .forEach).
Robert Siemer
34
Ich würde sagen, der ursprüngliche Code ist in Ordnung. Es besteht keinerlei Notwendigkeit, den Zugang zur lengthImmobilie 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 .lengthtatsächlich helfen würde, ist ein Array höchstwahrscheinlich nicht mehr die richtige Datenstruktur. Die Verwendung forEachhat 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.
Stijn de Witt
29
@RobertSiemer Die lengthEigenschaft eines Arrays wird nicht bei jedem Aufruf berechnet. Es handelt sich um eine im arrayObjekt gespeicherte Variable , die nur aktualisiert wird, wenn Sie das Array ändern. Es fallen also tatsächlich keine Leistungskosten an, wenn arr.lengthder forZustand berücksichtigt wird.
Mikeyq6
7
@Mojimi Ignorieren Sie als Anfänger alle Ratschläge zu Leistungsfragen in Randfällen wie diesem. Verwenden Sie die ausdrucksstärkere Syntax. Mit der Zeit fügen Javascript-Laufzeiten immer mehr Optimierungen hinzu - sie werden forEachRü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.
Mörre
1041

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 ar1und wird ar2nicht neu zugewiesen, zum Beispiel:

var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];

ar1 = ar1.concat(ar2);
alert(ar1);

Viele tolle Infos hier .

MK_Dev
quelle
163
Stellen Sie nur sicher, dass die Leute die Variable ar ar3 = ar1.concat (ar2) abfangen. Teil. ar1.concat (ar2) speichert die Werte nicht in ar1. Sie müssen es abfangen, indem Sie es ar3 oder zurück zu ar1 zuweisen, z. B.: Ar1 = ar1.concat (ar2);
Vbullinger
31
Ich würde sagen, das ist eigentlich die falsche Antwort. Die Frage war How do I append to an array in JavaScript?, aber concattatsä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.
Stijn de Witt
@StijndeWitt Sie können immer noch anhängen, ohne ein neues Array zu erstellen, wie im vorherigen Kommentar angegeben ar1 = ar1.concat(ar2);wird anar1
cameronjonesweb
2
@cameronjonesweb Tatsächlich wird ein neues Array mit demselben Inhalt wie das neue Array erstellt ar1, angehängt ar2und 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.
Stijn de Witt
@StijndeWitt Du hast recht. Anders betrachtet funktioniert .push jedoch nur gut beim Hinzufügen einzelner Variablen / Objekte, wird jedoch beim Anhängen von Arrays ar2durcheinander gebracht , was oben sowieso der Fall ist. Das Ergebnis .pushim Szenario wird sein = [ar1, [ar2]]. .concat löst dieses Problem, jedoch mit Geschwindigkeitseinbußen und einem neuen Array. Um es .pushin Array-Anhängen richtig zu verwenden, schleifen Sie zuerst das enthaltene Element aus und drücken Sie jedes. ar2.forEach(each => { ar1.push(each); });
Ade
408

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):

  • Kleine Arrays: arr[arr.length] = bist schneller (300 ms gegenüber 800 ms)
  • Große Arrays: arr.push(b)ist schneller (500 ms gegenüber 900 ms)

Safari 5.0 (Mac):

  • Kleine Arrays: arr[arr.length] = bist schneller (90 ms gegenüber 115 ms)
  • Große Arrays: arr[arr.length] = bist schneller (160 ms gegenüber 185 ms)

Google Chrome 6.0 (Mac):

  • Kleine Arrays: Kein signifikanter Unterschied (und Chrome ist SCHNELL! Nur ~ 38 ms !!)
  • Große Arrays: Kein signifikanter Unterschied (160 ms)

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;
    }
}
Jens Roland
quelle
9
Die Frage ist, ob .length ein gespeicherter Wert ist oder beim Zugriff berechnet wird. Wenn letzterer zutrifft, kann es sein, dass die Verwendung einer einfachen Variablen (wie j) als Indexwert noch schneller ist
yoel halb
4
Würde gerne concat () im selben Test sehen!
Justin
2
Ich frage mich, wie sehr sich dies in den letzten vier Jahren geändert hat. (Jsperf wäre jetzt praktisch.)
Paul Draper
8
Diese Art des Benchmarking ist interessant, aber ironischerweise nicht sehr hilfreich, um Apps schneller zu machen. Die Rendering-Schleife ist in jedem Zyklus weitaus teurer. Darüber hinaus werden diese Interna der JS-Sprache von Browser-Entwicklern kontinuierlich optimiert. Das ist der Grund für meine Ablehnung, nicht die Interessantheit dieser Antwort. Wenn Sie schnellere Apps wünschen, sollten Sie zuerst einen Benchmark durchführen und sehen, was geändert werden muss - 99 von 100 Mal ist dies kein Problem, wie dieser Test zeigt. Oft ist es der schlechte Entwickler JS / CSS - keine Browser-Interna, die es langsam machen.
LessQuesar
7
Ich stimme LessQuesar darin zu, wenn möglich an den eingebauten Elementen festzuhalten. Nicht dass Mikrooptimierung an sich schlecht ist, aber er hat Recht, dass Browser ihre Motordrehzahl immer verbessern. Ein typisches Beispiel: Zum jetzigen Zeitpunkt ist die Leistung pro Browser für alle oben aufgeführten Techniken nahezu identisch. Das bedeutet vor ein paar Jahren viel Aufhebens um einen so kleinen Gewinn, wenn es jetzt keinen Gewinn mehr gibt.
Beejor
297

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 applymehr, wie:

var arr = ['first'];
arr.push('second', 'third');

arr.push(...['fourth', 'fifth']);
console.log(arr) ;

Omnimike
quelle
25
Beste Antwort zum Anhängen eines Arrays von Elementen, ohne ein neues Array zu erstellen.
Gabriel Littman
1
@GabrielLittman Insbesondere, weil das Anhängen an ein Array, IMHO, das Array ändern und kein neues erstellen sollte.
Juan Mendes
3
Ich mag die push.apply-Version, würde sie aber lieber verwenden Array.prototype.push.apply().
Michael
1
Manchmal ist es wichtig, den Verweis auf ein Array beizubehalten - beispielsweise in AngularJs, wenn sich ein Array auf einem Controller im Gültigkeitsbereich befindet und ein Dienst die Daten im Array für die Anzeige aktualisieren muss. Deshalb stimme ich dieser Lösung zu.
Siehe schärfer
Diese Antwort sollte wirklich höher sein.
Anomalie
80

Sie können zwei Arrays verwenden pushund 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 array2an array1. array1Enthält jetzt [11, 32, 75, 99, 67, 34]. Dieser Code ist viel einfacher als das Schreiben von forSchleifen zum Kopieren aller Elemente im Array.

Fizer Khan
quelle
Dies ist, was ich benötigt habe, Original-Array-Referenz beibehalten
amit bakle
Wenn Sie ES6 / 7 verwenden, können Sie auch den ...Operator anstelle von const a1 = [] const a2 = [5,6,7] const.push(...a2) edit bearbeiten: Syntax-Highlight
Mieszko
Ich würde array1.concat(array2)in dieser Situation verwenden. Der Anruf zu pushscheint unnötig.
Verbinden Sie Ihr Ladegerät
56

Mit dem neuen ES6- Spread-Operator wird das Verbinden zweier Arrays mithilfe von pushnoch 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 arr2am Ende von hinzu arr.

Babel REPL Beispiel

CodingIntrigue
quelle
47

Wenn arres sich um ein Array handelt und valder 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);

rjmunro
quelle
45

Verwendung concat:

a = [1, 2, 3];
b = [3, 4, 5];
a = a.concat(b);
console.log(a);

Mαzen
quelle
34

Javascript mit ECMAScript 5 - Standard , die nun von den meisten Browsern unterstützt wird, können Sie verwenden , apply()um append array1zu 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 spreadOperator verwenden:

"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];

array2.push(...array1);

console.log(array2); // [1, 2, 3, 4, 5]

Der spreadBediener 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.

Zhenyang Hua
quelle
30

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 gArray ( var a=[]) einen Datensatz hinzufügen möchten, können Sie Folgendes verwenden:

a.push('g');
Pawan Singh
quelle
25

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
Maarten Peels
quelle
25

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 .lengthEigenschaft 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"]
Inconnu
quelle
Für 1) heißt dies "ohne das ursprüngliche Array zu ändern". Aber genau das pushbewirkt es: Es modifiziert das ursprüngliche Array, indem neue Elemente darauf verschoben werden. Lese ich das falsch oder sollte das bearbeitet werden?
Phil Calvin
22

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.

José Antonio Postigo
quelle
17

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)

yo hal
quelle
Du meinst eigentlich nicht "undefined". Es muss lesen void 0! "undefined"ist eine Zeichenfolge und "undefined" !== void 0daher ist Ihre if(myArray[i]falsch, es sei denn, das Array am Index iist 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 0immer 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"]=1oder ähnliches.
Tino
14

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
Srikrushna Pal
quelle
1
Warum nicht arrName.push('newElemenet1, newElemenet2, newElemenet3')?
Mihail Malostanidis
1
In push () wird das Element als letztes eingefügt, aber in meinem Beispiel wird das Element in der Mitte eingefügt, dh aus dem Array-Index 1 (gemäß Beispiel) @Mihail Malostanidis
Srikrushna
Oh, ich dachte, die Annahme wäre arrNamelang 1.
Mihail Malostanidis
11

concat()kann natürlich auch mit zweidimensionalen Arrays verwendet werden. Keine Schleife erforderlich.

var a = [[1, 2], [3, 4]];

var b = [["a", "b"], ["c", "d"]];

b = b.concat (a);

Alarm (b [2] [1]); // Ergebnis 2

Karl
quelle
10

Lassen Sie die Array-Längeneigenschaft die Arbeit erledigen:

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
hawkeye126
quelle
9

Ich möchte nur ein Snippet zum zerstörungsfreien Hinzufügen eines Elements hinzufügen.

var newArr = oldArr.concat([newEl]);
Danil Gaponov
quelle
8

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:

const arr = [1, 2, 3];
const val = 4;

arr.concat([val]); // [1, 2, 3, 4]

Oder nur:

[...arr, val] // [1, 2, 3, 4]
Lior Elrom
quelle
2
Korrigieren Sie mit ES6 für den Ruhebediener.
monikapatelIT
7

Wenn Sie den ES6 verwenden, können Sie dazu den Spread- Operator verwenden.

var arr = [
    "apple",
    "banana",
    "cherry"
];

var arr2 = [
    "dragonfruit",
    "elderberry",
    "fig"
];

arr.push(...arr2);
JmLavoier
quelle
7

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' ]
Hoque MD Zahidul
quelle
1
Dadurch wird der Wert nicht an das Array angehängt, was vom OP verlangt wurde. Dadurch wird ein neues Array mit dem Inhalt des alten Arrays und den neuen Elementen erstellt. Das ist wirklich Array.concat.
Richard Matheson
5

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]

Emil Reña Enriquez
quelle
5

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 :

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')

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:

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

Flavio Copes
quelle
4

Sie .push () diesen Wert in. Beispiel: array.push (Wert);

Jayme
quelle
4

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);
Satyapriya Mishra
quelle
2

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.

Alireza
quelle
1

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"]
Sanu Uthaiah Bollera
quelle
0

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);

Harunur Rashid
quelle
0

Anhängen von Elementen an ein Array

let fruits =["orange","banana","apple","lemon"]; /*array declaration*/

fruits.push("avacado"); /* Adding an element to the array*/

/*displaying elements of the array*/

for(var i=0; i < fruits.length; i++){
  console.log(fruits[i]);
}
Ir Calif
quelle
0

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';

Aditya
quelle