Frage Wie fügt man etwas an ein Array an?


Wie füge ich ein Objekt (z. B. eine Zeichenfolge oder eine Zahl) an ein Array in JavaScript an?


2872


Ursprung


Antworten:


Benutze die push() Funktion zum Anhängen an ein Array:

// initialize array
var arr = [
    "Hi",
    "Hello",
    "Bonjour"
];

// append new value to the array
arr.push("Hola");

console.log(arr);

Wird gedruckt

["Hi", "Hello", "Bonjour", "Hola"]

Du kannst den ... benutzen push() Funktion zum Anhängen von mehr als einem Wert an ein Array in einem einzelnen Aufruf:

// 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]);
}

Wird gedruckt

Hi
Hello
Bonjour
Hola 
Salut
Hey

Aktualisieren

Wenn Sie die Elemente eines Arrays zu einem anderen Array hinzufügen möchten, können Sie verwenden firstArray.concat(secondArray):

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

arr = arr.concat([
    "dragonfruit",
    "elderberry",
    "fig"
]);

console.log(arr);

Wird gedruckt

["apple", "banana", "cherry", "dragonfruit", "elderberry", "fig"]

3378



Wenn Sie nur eine einzelne Variable anhängen, dann push() funktioniert gut. 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);

Wird ausspucken:

"1,2,3"
"4,5,6"
"1,2,3,4,5,6"

Die Concat hat keinen Einfluss ar1 und ar2 außer wenn sie neu zugewiesen werden, zum Beispiel:

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

Wird anzeigen:

"1,2,3,4,5,6"

Viele tolle Infos Hier


954



Einige schnelle Benchmarks (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] = b ist schneller (300 ms vs. 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] = b ist schneller (90ms vs. 115ms)
  • Große Arrays: arr[arr.length] = b ist schneller (160 ms gegenüber 185 ms)

Google Chrome 6.0 (Mac):

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

Ich mag arr.push() Syntax besser, aber ich denke, ich wäre besser dran mit dem arr[arr.length] Version, zumindest in roher Geschwindigkeit. Ich würde aber gerne die Ergebnisse eines IE 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;
    }
}

369



Ich denke, es ist erwähnenswert, dass Push mit mehreren Argumenten aufgerufen werden kann, die der Reihe nach an das Array angehängt werden. Beispielsweise:

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

Daher können Sie mit push.apply ein Array wie folgt an ein anderes Array anhängen:

arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr); // ['first', 'second', 'third', 'forth', 'fifth']

Mit Anmerkungen versehenes ES5 hat mehr Infos zu genau was drücken und sich bewerben machen.

2016 Update: mit VerbreitungDas brauchst du nicht apply mehr, wie:

arr.push(...['fourth', 'fifth']);
console.log(arr) // ['first', 'second', 'third', 'fourth', 'fifth']

259



Sie können verwenden push und apply Funktion zum Anhängen von zwei Arrays.

var array1 = [11, 32, 75];
var array2 = [99, 67, 34];

Array.prototype.push.apply(array1, array2);

Es wird angehängt array2 zu array1. Jetzt array1 enthält [11, 32, 75, 99, 67, 34]. Dieser Code ist viel einfacher als das Schreiben for Schleifen, um alle Elemente im Array zu kopieren.


64



Benutzen concat:

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

a enthält jetzt alle Elemente, [1, 2, 3, 3, 4, 5].

Referenz: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/concat


35



Ob arr ist ein Array und val ist der Wert, den Sie hinzufügen möchten:

arr.push(val);

Z.B.

arr = ['a', 'b', 'c'];
arr.push('d');
console.log(arr);

wird protokollieren:

['a', 'b', 'c', 'd']

34