Wie etwas zu einem Array anzuhängen?
-
20-08-2019 - |
Frage
Wie anfügen ich ein Objekt (wie ein String oder eine Zahl) auf ein Array in JavaScript?
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
.
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);
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 Um einen mehr Artikel zu einem Array anzuzuhängen, können Sie Sie können auch die oder ein Array: Beachten Sie, dass zuvor beschrieben, wie diese Methode nicht das ursprüngliche Array nicht mutieren, aber es gibt ein neues Array. bei geschrieben let fruits = ['banana', 'pear', 'apple']
fruits = fruits.concat('mango')
mehrere Artikel anhängen
push()
indem sie sie mit mehreren Argumenten aufrufen: const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)
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)
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat(['mango', 'melon', 'avocado'])
console.log(allfruits)
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';