Domanda

Come posso aggiungere un oggetto (come una stringa o un numero) a un array in JavaScript?

È stato utile?

Soluzione

Utilizza Array.prototype.push metodo per aggiungere valori a un array:

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

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

console.log(arr);


È possibile utilizzare la funzione push() per aggiungere più di un valore a un array in una singola chiamata:

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


Aggiorna

Se si desidera aggiungere gli elementi di un array a un altro array, è possibile utilizzare firstArray.concat(secondArray) :

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

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

console.log(arr);

Aggiorna

Solo un'aggiunta a questa risposta se si desidera aggiungere qualsiasi valore all'inizio di un array che significhi al primo indice, è possibile utilizzare Array.prototype.unshift per questo scopo.

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

Supporta anche l'aggiunta di più valori contemporaneamente come push.

Altri suggerimenti

Se aggiungi solo una singola variabile, allora push() funziona perfettamente. Se è necessario aggiungere un altro array, utilizzare concat():

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

var ar3 = ar1.concat(ar2);

alert(ar1);
alert(ar2);
alert(ar3);

Il concat non influisce su ar1 e ar2 a meno che non venga riassegnato, ad esempio:

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

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

Un sacco di ottime informazioni qui .

Alcuni benchmark rapidi (ogni test = 500k elementi aggiunti e i risultati sono medie di più esecuzioni) hanno mostrato quanto segue:

Firefox 3.6 (Mac):

  • Piccoli array: arr[arr.length] = b è più veloce (300 ms contro 800 ms)
  • Array di grandi dimensioni: arr.push(b) è più veloce (500ms contro 900ms)

Safari 5.0 (Mac):

  • Piccoli array: arr.push() è più veloce (90ms contro 115ms)
  • Array di grandi dimensioni: arr[arr.length] è più veloce (160 ms contro 185 ms)

Google Chrome 6.0 (Mac):

  • Piccoli array: Nessuna differenza significativa (e Chrome è VELOCE! Solo ~ 38 ms !!)
  • Array di grandi dimensioni: nessuna differenza significativa (160 ms)

Mi piace la sintassi <=> meglio, ma penso che starei meglio con la versione <=>, almeno nella velocità pura. Mi piacerebbe comunque vedere i risultati di un IE.


I miei cicli di benchmarking:

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

Penso che valga la pena menzionare che push può essere chiamato con più argomenti, che verranno aggiunti all'array in ordine. Ad esempio:

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

Di conseguenza puoi usare push.apply per aggiungere un array ad un altro array in questo modo:

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

ES5 annotato ha più informazioni su cosa esattamente push e applica fai.

Aggiornamento 2016: con spread , tu non è più necessario apply, come:

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

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

È possibile utilizzare la funzione push e apply per aggiungere due array.

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

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

Aggiungerà array2 a array1. Ora [11, 32, 75, 99, 67, 34] contiene for. Questo codice è molto più semplice della scrittura di <=> loop per copiare tutti gli elementi dell'array.

Con il nuovo ES6 operatore di diffusione , unire due matrici usando push diventa ancora più semplice:

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

Questo aggiunge il contenuto di arr2 alla fine di arr.

Esempio di REPL di Babel

Se arr è un array e val è il valore che si desidera aggiungere utilizzare:

arr.push(val);

per es.

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

Usa concat :

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

Javascript con ECMAScript 5 che ora è supportato dalla maggior parte dei browser, puoi usare apply() per aggiungere array1 a 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 con ECMAScript 6 standard supportato da Chrome, FF e IE Edge, puoi utilizzare l'operatore spread:

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

array2.push(...array1);

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

L'operatore array2.push(...array1); sostituirà array2.push(3, 4, 5); con var combinedArray = array1.concat(array2); quando il browser pensa alla logica.

Punto bonus

Se desideri creare un'altra variabile per memorizzare tutti gli elementi da entrambi gli array, puoi farlo:

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

ES6 ...

L'operatore diffusione (<=>) è quello di distribuire tutti gli elementi da una raccolta.

Se si desidera aggiungere due matrici -

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

allora puoi usare:

var c = a.concat(b);

E se si desidera aggiungere il record g all'array (var a=[]), è possibile utilizzare:

a.push('g');

Il metodo push() aggiunge nuovi elementi alla fine di un array e restituisce la nuova lunghezza. Esempio:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");

// The result of fruits will be:
Banana, Orange, Apple, Mango, Kiwi

La risposta esatta alla tua domanda ha già una risposta, ma diamo un'occhiata ad altri modi per aggiungere elementi a un array.

Il metodo unshift() aggiunge nuovi elementi all'inizio di un array e restituisce la nuova lunghezza. Esempio:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon", "Pineapple");

// The result of fruits will be:
Lemon, Pineapple, Banana, Orange, Apple, Mango

Infine, il metodo concat() viene utilizzato per unire due o più array. Esempio:

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

Esistono un paio di modi per aggiungere un array in JavaScript:

1) Il metodo push() aggiunge uno o più elementi alla fine di un array e restituisce la nuova lunghezza dell'array.

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

Output:

[1, 2, 3, 4, 5]

2) Il metodo unshift() aggiunge uno o più elementi all'inizio di un array e restituisce la nuova lunghezza dell'array:

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

Output:

[4, 5, 1, 2, 3]

3) Il metodo concat() viene utilizzato per unire due o più array. Questo metodo non modifica gli array esistenti, ma restituisce invece un nuovo array.

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

Output:

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

4) Puoi utilizzare la proprietà .length dell'array per aggiungere un elemento alla fine dell'array:

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

Output:

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

5) Il metodo splice() modifica il contenuto di un array rimuovendo elementi esistenti e / o aggiungendo nuovi elementi:

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

Output:

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

6) Puoi anche aggiungere un nuovo elemento a un array semplicemente specificando un nuovo indice e assegnando un valore:

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

Output:

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

Ora puoi sfruttare la sintassi ES6 e fare semplicemente:

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

mantenendo immutabile l'array originale.

Se conosci l'indice più alto (come memorizzato in una variabile " i ") allora puoi farlo

myArray[i + 1] = someValue;

Tuttavia, se non lo sai, puoi usare

myArray.push(someValue);

come suggerito da altre risposte, oppure puoi usare

myArray[myArray.length] = someValue; 

Nota che l'array è basato su zero, quindi .length restituisce l'indice più alto più uno.

Si noti inoltre che non è necessario aggiungere in ordine e in realtà è possibile saltare i valori, come in

myArray[myArray.length + 1000] = someValue;

Nel qual caso i valori intermedi avranno un valore indefinito.

È quindi buona norma eseguire il looping di un JavaScript per verificare che un valore esista effettivamente in quel punto.

Questo può essere fatto in modo simile al seguente:

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

se sei sicuro di non avere zeri nell'array, puoi semplicemente fare:

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

Naturalmente in questo caso assicurati di non usare come condizione myArray [i] (come suggeriscono alcune persone su Internet in base alla fine che non appena sarò maggiore allora l'indice più alto restituirà indefinito che restituisce false)

Aggiungi elemento singolo

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

Aggiungi più elementi

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

Aggiungi 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(), ovviamente, può essere utilizzato anche con matrici bidimensionali. Nessun ciclo richiesto.

  

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

     

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

     

b = b.concat (a);

     

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

Lascia che la proprietà della lunghezza dell'array faccia il lavoro:

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

myarray.length restituisce il numero di stringhe nell'array. JS è a base zero , quindi la chiave dell'elemento successivo dell'array sarà la lunghezza corrente dell'array. EX:

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

Voglio solo aggiungere uno snippet per l'aggiunta non distruttiva di un elemento.

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

Se stai utilizzando ES6 puoi usare spread operatore per farlo.

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

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

arr.push(...arr2);

Aggiungi un valore a un array

Since Array.prototype.push aggiunge uno o più elementi alla fine di un array e restituisce la nuova lunghezza dell'array , a volte vogliamo solo ottenere il nuovo array aggiornato in modo da poter fare qualcosa del genere :

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

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

O semplicemente:

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

puoi farlo utilizzando la nuova funzione javascript Es 6:

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

se vuoi combinare 2 array senza il duplicato puoi provare il codice qui sotto

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

Utilizzo:

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

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

Tu .push () quel valore in. Esempio: array.push (valore);

Se si desidera aggiungere un singolo valore in un array, utilizzare semplicemente il metodo push. Aggiungerà un nuovo elemento alla fine dell'array.

Ma se hai intenzione di aggiungere più elementi, archivia gli elementi in un nuovo array e concatena il secondo array con il primo array ... in entrambi i modi.

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

Aggiungi un singolo elemento

Per aggiungere un singolo elemento a un array, utilizzare push() metodo fornito dall'oggetto Array:

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

concat() muta l'array originale.

Per creare invece un nuovo array, utilizzare let Metodo di matrice:

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

Si noti che const non aggiunge effettivamente un elemento alla matrice, ma crea una nuova matrice, che è possibile assegnare a un'altra variabile o riassegnare alla matrice originale (dichiarandola come <=>, poiché non è possibile riassegnare a <=>):

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

Aggiungi più elementi

Per aggiungere un oggetto multiplo ad un array, puoi usare <=> chiamandolo con più argomenti:

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

Puoi anche utilizzare <= > metodo che hai visto prima, passando un elenco di elementi separati da una virgola:

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

o un array:

<*>

Ricorda che come descritto in precedenza questo metodo non muta l'array originale, ma restituisce un nuovo array.

  

Originariamente pubblicato in

Non abbiamo la funzione append per Array in javascript, ma abbiamo push e unshift , immagina di avere l'array di seguito:

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

e ci piace aggiungere un valore a questo array, possiamo farlo, arr.push (6) e aggiungerà 6 alla fine dell'array:

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

inoltre possiamo usare unshift, guarda come possiamo applicarlo:

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

Sono le funzioni principali per aggiungere o aggiungere nuovi valori agli array.

Puoi usare il metodo push.

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() aggiunge un nuovo elemento alla fine di un array.
pop() rimuove un elemento dalla fine di un array.

Per aggiungere un oggetto (come una stringa o un numero) a un array usare -
array.push(toAppend);

Aggiunta di elementi su un 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]);
}

È possibile utilizzare push () se si desidera aggiungere valori per esempio. arr.push("Test1", "Test2");

Se hai un array puoi usare concat () per esempio. Array1.concat(Array2)

Se hai solo un elemento da aggiungere puoi provare anche la lunghezza per esempio. array[aray.length] = 'test';

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top