Frage

Wie anfügen ich ein Objekt (wie ein String oder eine Zahl) auf ein Array in JavaScript?

War es hilfreich?

Lösung

Mit der Array.prototype.push Methode anhängen Werte auf ein Array:

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

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

console.log(arr);


Sie können die push() Funktion verwenden, um mehr als einen Wert auf ein Array in einem einzigen Aufruf 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 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 beliebigen Wert zu Beginn eines Arrays angehängt werden soll, die mit dem ersten Index bedeutet, dann können Sie eine href verwenden <= "https://developer.mozilla.org/en-US / docs / Web / JavaScript / Reference / Global_Objects / Array / unshift“rel = "noreferrer"> Array.prototype.unshift für diesen Zweck.

var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);

Es unterstützt auch mehrere Werte auf einmal wie push angehängt wird.

Andere Tipps

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

Die Concat wirkt sich nicht auf ar1 und ar2 wenn nicht neu zugewiesen werden, zum Beispiel:

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

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

Es gibt viele gute Informationen hier .

Einige schnelle Benchmarking (jeden Test = 500k anhängenden Elemente und die Ergebnisse sind Mittelwerte aus mehreren Läufen) zeigte folgendes:

Firefox 3.6 (Mac):

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

Safari 5.0 (Mac):

  • Kleine Arrays: arr[arr.length] = b ist schneller (90ms vs. 115MS)
  • Große Arrays: arr[arr.length] = b ist schneller (160ms vs. 185ms)

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 die arr.push() Syntax besser, aber ich denke, dass ich besser dran mit der arr[arr.length] Version sein würde, zumindest in Rohgeschwindigkeit. Ich würde gerne die Ergebnisse eines IE obwohl laufen zu sehen.


Mein 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 erwähnen kann mit mehreren Argumenten aufgerufen werden, die, um das Array angehängt werden. Zum Beispiel:

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

Als Folge davon können Sie verwenden push.apply ein Array zu einem anderen Array anhängen etwa so:

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

Kommentieren ES5 hat weitere Informationen über genau das, was Push und zu verbreiten , Sie nicht, dass apply mehr benötigen, wie:

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

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

Sie können push und apply Funktion verwenden, um zwei Arrays anhängen.

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

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

Es wird anhängen array2 array1. Jetzt array1 enthält [11, 32, 75, 99, 67, 34]. Dieser Code ist viel einfacher als for Schreiben Schleife jeden und alle Elemente im Array zu kopieren.

Mit dem neuen ES6 Operator verbreiten Verbinden von zwei Arrays push mit noch einfacher:

var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push(...arr2);
console.log(arr);

Das fügt den Inhalt der arr2 auf das Ende des arr.

Babel REPL Beispiel

Wenn arr ist ein Array, und val ist der Wert, den Sie möchten Verwendung hinzuzufügen:

arr.push(val);

z.

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

Verwenden Sie 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 apply() array1 anhängen 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 IE und FF Rand 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 Operator array2.push(...array1); mit array2.push(3, 4, 5); ersetzen wird, wenn der Browser die Logik denkt.

Bonuspunkt

Wenn Sie möchten, erstellen andere Variable alle speichern die Elemente aus beiden Array, können Sie dies tun:

ES5 var combinedArray = array1.concat(array2);

ES6 const combinedArray = [...array1, ...array2]

Der Spread Operator (...) ist es, alle Elemente aus einer Sammlung, um sich auszubreiten.

Wenn Sie zwei Arrays anhängen -

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

dann könnte man verwenden:

var c = a.concat(b);

Und wenn Sie Datensatz g auf Array (var a=[]) hinzufügen möchten, dann können Sie verwenden:

a.push('g');

Die push() Methode fügt neue Elemente an das Ende eines Arrays und gibt die neue Länge. 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 bereits beantwortet, aber lassen Sie sich auf einigen anderen Möglichkeiten suchen, um Elemente zu einem Array hinzuzufügen.

Die unshift() Methode fügt neue Elemente am Anfang eines Arrays und gibt die neue Länge. 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, um zwei oder mehr Arrays verwendet. 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 ein paar Möglichkeiten, ein Array in JavaScript anhängen:

1) Die push() Methode fügt ein oder mehr Elemente mit dem Ende eines Feldes und gibt die neue Länge des Arrays.

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 mehr Elemente am Anfang eines Arrays und gibt die neue Länge des Arrays:

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 Anordnungen zu verschmelzen. Diese Methode nicht ändert die bestehenden Arrays, sondern gibt ein neues Array.

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) können Sie das Array .length Eigenschaft verwenden, um ein Element am Ende des Arrays hinzuzufügen:

var ar = ['one', 'two', 'three'];
ar[ar.length] = 'four';
console.log( ar ); 

Ausgabe:

 ["one", "two", "three", "four"]

5) Die splice() Verfahren ändert den Inhalt eines Felds von vorhandenen Elemente zu entfernen und / oder das Hinzufügen neuer Elemente:

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 auch ein neues Element in einem Array fügen Sie einfach durch einen neuen Index spezifiziert 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"]

Jetzt können Sie die Vorteile der ES6 Syntax nehmen und einfach tun:

let array = [1, 2];
console.log([...array, 3]);

unveränderlich das ursprüngliche Array zu halten.

Wenn Sie den höchsten Index kennen (wie in einer Variable gespeichert „i“), dann können Sie tun,

myArray[i + 1] = someValue;

Allerdings, wenn Sie nicht wissen, dann können Sie entweder

myArray.push(someValue);

als andere Antworten vorgeschlagen, oder Sie verwenden können,

myArray[myArray.length] = someValue; 

Beachten Sie, dass das Array Null basiert, so .length den höchsten Index plus eins zurück.

Beachten Sie auch, dass Sie, um nicht hinzufügen müssen und man kann tatsächlich Werte überspringen, wie in

myArray[myArray.length + 1000] = someValue;

In diesem Fall werden die Werte dazwischen einen Wert von nicht definiert haben.

Es ist daher eine gute Praxis, wenn sie durch einen JavaScript Looping, um sicherzustellen, dass ein Wert vorhanden ist tatsächlich an diesem Punkt.

Dies kann durch so etwas wie die folgenden getan werden:

if(myArray[i] === "undefined"){ continue; }

, wenn Sie sicher sind, dass Sie in dem Feld keine Nullen nicht haben, dann können Sie einfach tun:

if(!myArray[i]){ continue; }

Natürlich stellen Sie sicher, in diesem Fall, dass Sie als Bedingung myArray nicht verwenden [i] (wie einige Leute über das Internet am Ende Basis legen nahe, dass, sobald i größer als der höchsten Index wird es nicht definiert zurückkehren welche das Ergebnis falsch)

Anfügen Einzelelement

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

anhängen Mehrere Elemente

//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

anhängen Array

//join two or more arrays
arrName.concat(newAry1, newAry2);
//newAry1,newAry2: Two different arrays which are to be combined (concatenated) to an existing array

concat(), kann natürlich auch mit 2-dimensionalen Arrays verwendet werden. Kein Looping erforderlich.

  

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

     

var b = [       [ "A", "b"],       [ "C", "d"]];

     

b = b.concat (a);

     

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

Lassen Sie die Array-Länge Eigenschaft die Arbeit machen:

myarray[myarray.length] = 'new element value added to the end of the array';

myArray.length gibt die Anzahl der Strings in dem Array. JS Null basiert , um die nächste Element Schlüssel des Arrays werden die aktuelle Länge des Arrays sein. EX:

var myarray = [0, 1, 2, 3],
    myarrayLength = myarray.length; //myarrayLength is set to 4
  

Ich will nur einen Ausschnitt für nicht-destruktive Addition eines Element hinzuzufügen.

var newArr = oldArr.concat([newEl]);

Wenn Sie das ES6 verwenden, können Sie verwenden, Verbreitung Operator, es zu tun.

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

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

arr.push(...arr2);

Fügen Sie Wert auf ein Array

Da Array.prototype.push fügt ein oder mehr Elemente an das Ende eines Arrays und gibt die neue Länge des Arrays , manchmal wollen wir Array nur um die neue up-to-date bekommen, so dass wir so etwas wie dies tun können :

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

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

Oder einfach:

[...arr, val] // [1, 2, 3, 4]

Sie können es neue Javascript Es 6 Funktion tun mit:

// 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 zwei Arrays kombinieren möchten, ohne das Duplikat können Sie den Code unten versuchen

array_merge = function (arr1, arr2) {
  return arr1.concat(arr2.filter(function(item){
    return arr1.indexOf(item) < 0;
  }))
}

Nutzung:

array1 = ['1', '2', '3']
array2 = ['2', '3', '4', '5']
combined_array = array_merge(array1, array2)

Ausgang: [1,2,3,4,5]

Sie .push () diesen Wert in. Beispiel: Array.push (value);

Wenn Sie einen einzelnen Wert in ein Array anhängen möchten, verwenden Sie einfach die Push-Methode. Es wird ein neues Element am Ende des Arrays hinzuzufügen.

Aber wenn Sie beabsichtigen, mehrere Elemente dann speichern Sie die Elemente in einem neuen Array und concat das zweite Array mit dem ersten Array ... so oder so die Sie hinzufügen möchten.

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

Fügen Sie ein einzelnes Element

Um ein einzelnes Element in ein Array anhängen, verwenden Sie die push() Methode durch das Array-Objekt zu finden:

const fruits = ['banana', 'pear', 'apple']
fruits.push('mango')
console.log(fruits)

push() mutiert das ursprüngliche Array.

ein neues Array erstellen verwenden Sie stattdessen die let fruits = ['banana', 'pear', 'apple'] fruits = fruits.concat('mango')

mehrere Artikel anhängen

Um einen mehr Artikel zu einem Array anzuzuhängen, können Sie push() indem sie sie mit mehreren Argumenten aufrufen:

const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)

Sie können auch die concat() Methode, die Sie zuvor gesehen haben, eine Liste von Elementen vorbei durch ein Komma getrennt:

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)

Beachten Sie, dass zuvor beschrieben, wie diese Methode nicht das ursprüngliche Array nicht mutieren, aber es gibt ein neues Array.

  

bei geschrieben

Wir haben keine Append-Funktion für Array in Javascript, aber wir haben Push und unshift , stellen Sie sich die Array unter:

var arr = [1, 2, 3, 4, 5];

und wir mögen einen Wert zu diesem Array anzuhängen, was wir tun können, arr.push (6), und es wird 6 bis zum Ende des Arrays hinzuzufügen:

arr.push(6); // return [1, 2, 3, 4, 5, 6];

können wir auch verwenden unshift, schauen, wie wir diese anwenden können:

arr.unshift(0); //return [0, 1, 2, 3, 4, 5];

Sie sind Hauptfunktionen hinzufügen oder neue Werte zu den Arrays anhängen.

Sie können 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 ein neues Element am Ende eines Arrays.
pop() entfernt ein Element aus dem Ende eines Arrays.

ein Objekt (wie ein String oder eine Zahl) zu einem Array verwenden, um anhängen -
array.push(toAppend);

Anfügen Elemente auf einem 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]);
}

Sie können die Push () verwenden, wenn Sie Werte hinzufügen möchten z.B. arr.push("Test1", "Test2");

Wenn Sie Array haben, können Sie verwenden concat () z.B. Array1.concat(Array2)

Wenn Sie nur ein Element, das Sie hinzufügen können auch Länge menthod versuchen z.B. array[aray.length] = 'test';

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top