Hoe voeg je iets toe aan een array?

Hoe voeg ik een object (zoals een tekenreeks of getal) toe aan een array in JavaScript?


Antwoord 1, autoriteit 100%

Gebruik de Array.prototype.pushmethode om waarden toe te voegen aan het einde van een array:

// initialize array
var arr = [
  "Hi",
  "Hello",
  "Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);

Antwoord 2, autoriteit 22%

Als je maar één variabele toevoegt, dan werkt push()prima. Als u nog een array moet toevoegen, gebruikt u concat():

var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
var ar3 = ar1.concat(ar2);
alert(ar1);
alert(ar2);
alert(ar3);

Antwoord 3, autoriteit 9%

Enkele snelle benchmarking (elke test = 500k toegevoegde elementen en de resultaten zijn gemiddelden van meerdere runs) toonde het volgende aan:

Firefox 3.6 (Mac):

  • Kleine arrays: arr[arr.length] = bis sneller(300ms vs. 800ms)
  • Grote arrays: arr.push(b)is sneller(500 ms vs. 900 ms)

Safari 5.0 (Mac):

  • Kleine arrays: arr[arr.length] = bis sneller(90ms vs. 115ms)
  • Grote arrays: arr[arr.length] = bis sneller (160ms versus 185ms)

Google Chrome 6.0 (Mac):

  • Kleine arrays: Geen significant verschil (en Chrome is snel! Alleen ~ 38ms !!)
  • grote arrays: geen significant verschil (160ms)

Ik hou van de arr.push()SYNTAX BETER, maar ik denk dat ik het beter zou zijn met de arr[arr.length]-versie, althans in RAW-snelheid. Ik zou het leuk vinden om de resultaten van een IE-run te zien.


Mijn benchmarking-lussen:

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

Antwoord 4, Autoriteit 6%

Ik denk dat het de moeite waard is om te vermelden dat push kan worden genoemd met meerdere argumenten, die in orde worden toegevoegd aan de array. Bijvoorbeeld:

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

Antwoord 5, Autoriteit 2%

U kunt de functie pushen applygebruiken om twee arrays toe te voegen.

var array1 = [11, 32, 75];
var array2 = [99, 67, 34];
Array.prototype.push.apply(array1, array2);
console.log(array1);

Antwoord 6

Met de nieuwe ES6 spread-operator, wordt het samenvoegen van twee arrays met pushnog eenvoudiger:

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

Antwoord 7

Als arreen array is en valde waarde is die u wilt toevoegen, gebruik dan:

arr.push(val);

Bijvoorbeeld

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

Antwoord 8

Gebruik concat:

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

Antwoord 9

Javascript met de ECMAScript 5-standaard die nu door de meeste browsers wordt ondersteund, u kunt apply()gebruiken om array1toe te voegen aan 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 met de ECMAScript 6-standaard die wordt ondersteund door Chrome en FF en IE Edge, u kunt de spread-operator gebruiken:

"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];
array2.push(...array1);
console.log(array2); // [1, 2, 3, 4, 5]

De operator spreadvervangt array2.push(...array1);door array2.push(3, 4, 5);wanneer de browser de logica denkt.

Bonuspunt

Als u een anderevariabele wilt maken om alle items van beide arrays op te slaan, kunt u dit doen:

ES5var combinedArray = array1.concat(array2);

ES6const combinedArray = [...array1, ...array2]

De spread-operator (...) is om alle items uit een verzameling te spreiden.


Antwoord 10

Als u twee arrays wilt toevoegen –

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

dan zou je kunnen gebruiken:

var c = a.concat(b);

en als u record wilt toevoegen gaan array (var a=[]), kunt u gebruiken:

a.push('g');

Antwoord 11

Er zijn een aantal manieren om een ​​array in JavaScript aan te voegen:

1) De push()Methode voegt een of meer elementen toe aan het einde van een array en retourneert de nieuwe lengte van de array.

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

Uitgang:

[1, 2, 3, 4, 5]

2) De unshift()Methode voegt een of meer elementen toe aan het begin van een array en retourneert de nieuwe lengte van de array:

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

Uitgang:

[4, 5, 1, 2, 3]

3) De concat()-methode wordt gebruikt om twee of meer arrays samen te voegen. Deze methode verandert niet de bestaande arrays, maar retourneert in plaats daarvan een nieuwe array.

var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
console.log(arr3);

Uitgang:

[ "a", "b", "c", "d", "e", "f" ]

4) U kunt het .lengthom een ​​element aan het einde van de array toe te voegen:

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

Uitvoer:

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

5)De methode splice()verandert de inhoud van een array door bestaande elementen te verwijderen en/of nieuwe elementen toe te voegen:

var myFish = ["angel", "clown", "mandarin", "surgeon"];
myFish.splice(4, 0, "nemo");
//array.splice(start, deleteCount, item1, item2, ...)
console.log(myFish);

Uitvoer:

["angel", "clown", "mandarin", "surgeon","nemo"]

6)U kunt ook een nieuw element aan een array toevoegen door simpelweg een nieuwe index op te geven en een waarde toe te kennen:

var ar = ['one', 'two', 'three'];
ar[3] = 'four'; // add new element to ar
console.log(ar);

Uitvoer:

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

Antwoord 12

De methode push()voegt nieuwe items toe aan het einde van een array en geeft de nieuwe lengte terug. Voorbeeld:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");
// The result of fruits will be:
Banana, Orange, Apple, Mango, Kiwi

Het exacte antwoord op uw vraag is al beantwoord, maar laten we eens kijken naar enkele andere manieren om items aan een array toe te voegen.

De unshift()Methode voegt nieuwe items toe aan het begin van een array en retourneert de nieuwe lengte. Voorbeeld:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon", "Pineapple");
// The result of fruits will be:
Lemon, Pineapple, Banana, Orange, Apple, Mango

En ten slotte wordt de concat()-methode gebruikt om deel te nemen aan twee of meer arrays. Voorbeeld:

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

Antwoord 13

Nu, u kunt profiteren van ESS6-syntaxis en doen het gewoon:

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

Houd de originele array onveranderlijk.


Antwoord 14

Als u de hoogste index kent (zoals opgeslagen in een variabele “I”), kunt u

doen

myArray[i + 1] = someValue;

Als u echter niet weet, kunt u

gebruiken

myArray.push(someValue);

Zoals andere antwoorden, of u kunt gebruiken

myArray[myArray.length] = someValue; 

Merk op dat de array op nul is gebaseerd, dus stuur de hoogste index plus één.

Houd er ook rekening mee dat u niet in volgorde hoeft toe te voegen en u kunt daadwerkelijk waarden overslaan, zoals in

myArray[myArray.length + 1000] = someValue;

In dat geval zullen de waarden ertussen de waarde undefined hebben.

Het is daarom een goede gewoonte om bij het doorlopen van een JavaScript te controleren of er op dat moment een waarde daadwerkelijk bestaat.

Dit kan worden gedaan door iets als het volgende:

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

als u zeker weet dat u geen nullen in de array heeft, kunt u het volgende doen:

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

Zorg er natuurlijk voor dat u in dit geval niet myArray[i] als voorwaarde gebruikt (zoals sommige mensen op internet suggereren op basis van het einde dat zodra i groter is dan de hoogste index, deze ongedefinieerd zal terugkeren die evalueert naar onwaar)


Antwoord 15

Eén element toevoegen

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

Meerdere elementen toevoegen

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

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

Antwoord 16

concat()kan natuurlijk ook worden gebruikt met 2-dimensionale arrays. Geen lus nodig.

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

var b = [
[“a”, “b”],
[“c”, “d”] ];

b = b.concat(a);

waarschuwing(b[2][1]); // resultaat 2


Antwoord 17

Laat de eigenschap array length het werk doen:

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

myarray.length retourneert het aantal strings in de array.
JS is gebaseerd op nul, dus de volgende elementsleutel van de array is de huidige lengte van de array.
BIJV.:

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

Antwoord 18

Ik wil gewoon een fragment toevoegen voor niet-destructieve toevoeging van een element.

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

Antwoord 19

Voeg een waarde toe aan een array

Sinds Array.prototype.pushvoegt een of meer elementen toe aan het einde van een array en geeft de nieuwe lengte van de array terug, soms willen we gewoon de nieuwe up-to-date array hebben zodat we zoiets kunnen doen :

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

Of gewoon:

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

Antwoord 20

Als je de ES6 gebruikt, kun je spread gebruiken operator om het te doen.

var arr = [
    "apple",
    "banana",
    "cherry"
];
var arr2 = [
    "dragonfruit",
    "elderberry",
    "fig"
];
arr.push(...arr2);

Antwoord 21

u kunt het doen met de nieuwe javascript Es 6-functie:

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

Antwoord 22

Een enkel item toevoegen

Als u een enkel item aan een array wilt toevoegen, gebruikt u de push()methode geleverd door het Array object:

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

push()muteert de originele array.

Als u in plaats daarvan een nieuwe array wilt maken, gebruikt u de concat()Matrixmethode:

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

Merk op dat concat()niet echt een item aan de array toevoegt, maar een nieuwe array maakt, die u aan een andere variabele kunt toewijzen, of opnieuw kunt toewijzen aan de oorspronkelijke array (declareren als let, aangezien u een constniet opnieuw kunt toewijzen):

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

Meerdere items toevoegen

Als u meerdere items aan een array wilt toevoegen, kunt u push()door het met meerdere argumenten aan te roepen:

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

U kunt ook de concat()methode die je eerder hebt gezien, waarbij je een lijst met items doorgeeft, gescheiden door een komma:

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

of een array:

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

Vergeet niet dat zoals beschreven voorheen deze methode niet de originele array muteert, maar het retourneert een nieuwe array.

Oorspronkelijk gepost op


Antwoord 23

Als u 2 arrays zonder het duplicaat wilt combineren, kunt u de onderstaande code proberen

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

Gebruik:

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

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


Antwoord 24

u .push () die waarde in.
Voorbeeld: array.push (waarde);


Antwoord 25

Als u een enkele waarde in een array wilt toevoegen, gebruikt u eenvoudig de drukmethode. Het voegt een nieuw element aan het einde van de array toe.

Maar als u van plan bent meerdere elementen toe te voegen, bewaar dan de elementen in een nieuwe array en concat met de tweede array met de eerste array … hoe dan ook.

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

Antwoord 26

We hebben geen append-functie voor Array in javascript, maar we hebben pushen unshift, stel je voor dat je de onderstaande array hebt:

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

en we willen graag een waarde aan deze array toevoegen, we kunnen doen, arr.push(6) en het zal 6 toevoegen aan het einde van de array:

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

ook kunnen we unshift gebruiken, kijk hoe we dit kunnen toepassen:

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

Het zijn hoofdfuncties om nieuwe waarden aan de arrays toe te voegen of toe te voegen.


Antwoord 27

U kunt de push-methode gebruiken.

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"]

Antwoord 28

push()voegt een nieuw element toe aan het einde van een array.
pop()verwijdert een element aan het einde van een array.

Als u een object (zoals een tekenreeks of een getal) aan een array wilt toevoegen, gebruikt u –
array.push(toAppend);


Antwoord 29

Items toevoegen aan een 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]);
}

ANTWOORD 30

U kunt de push () gebruiken als u waarden wilt toevoegen
b.v. arr.push("Test1", "Test2");

Als u een array hebt, kunt u Concat gebruiken ()
b.v. Array1.concat(Array2)

Als u slechts één element hebt om toe te voegen, kunt u ook length Menthod proberen
b.v. array[aray.length] = 'test';

Other episodes