Réponses:
Utilisez la Array.prototype.push
méthode pour ajouter des valeurs à un tableau:
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
Vous pouvez utiliser la push()
fonction pour ajouter plusieurs valeurs à un tableau en un seul appel:
// 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]);
}
Mise à jour
Si vous souhaitez ajouter les éléments d'un tableau à un autre tableau, vous pouvez utiliser firstArray.concat(secondArray)
:
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
Mise à jour
Juste un ajout à cette réponse si vous souhaitez ajouter une valeur au début d'un tableau qui signifie au premier index, vous pouvez l'utiliser Array.prototype.unshift
à cette fin.
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
Il prend également en charge l'ajout de plusieurs valeurs à la fois, tout comme push
.
for
du tout (utiliser .forEach
).
length
propriété. L'interprète fait un travail incroyable à cela et cela ne fera aucune différence dans The Real World, que vous l'optimisiez ou non. Si votre tableau devient si énorme que l'optimisation .length
aiderait réellement, un tableau n'est probablement plus la bonne structure de données. L'utilisation forEach
a ses avantages, mais il est très douteux que des performances accrues en soient un, car l'appel de fonction pour chaque itération entraîne un coût et n'économise rien.
length
propriété d'un tableau n'est pas calculée à chaque appel, c'est une variable stockée dans l' array
objet, qui n'est mise à jour que lorsque vous modifiez le tableau. Il n'y a donc en fait aucun coût de performance à inclure arr.length
dans la for
condition.
forEach
des fonctions de rappel (certaines d'entre elles le font probablement déjà) et il n'y aura pas de différence dans le code machine généré, si la fonction est appelée assez souvent pour être compilée au lieu d'être interprétée par le runtime. Le même conseil vaut pour tout langage qui n'est pas assembleur, en fait.
Si vous ajoutez seulement une seule variable, cela push()
fonctionne très bien. Si vous devez ajouter un autre tableau, utilisez concat()
:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
var ar3 = ar1.concat(ar2);
alert(ar1);
alert(ar2);
alert(ar3);
Le concat n'affecte pas ar1
et ar2
sauf réattribution, par exemple:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
ar1 = ar1.concat(ar2);
alert(ar1);
Beaucoup de bonnes informations ici .
How do I append to an array in JavaScript?
, mais crée enconcat
fait un nouveau tableau. C'est une différence importante! Au lieu de cela, je dirais que la réponse ci-dessous d'Omnimike est en fait la meilleure: Utilisez Push.apply pour pousser un tableau entier vers un tableau existant sans en créer un nouveau.
ar1 = ar1.concat(ar2);
s'ajoutera àar1
ar1
, d'ajouter ar2
puis de renvoyer le nouveau tableau. Oubliez simplement la partie affectation ( ar1 = ...
) de cette ligne de code et vous verrez que l' original ar1
n'a en fait pas changé. Si vous voulez éviter de faire une copie, vous en aurez besoin push
. Ne me croyez pas, croyez les docs : "La méthode concat () retourne un nouveau tableau" Première phrase dans les docs pour concat
.
ar2
est de toute façon ci-dessus. Le résultat de .push
dans le scénario sera = [ar1, [ar2]]
. .concat résout ce problème, mais en sacrifiant la vitesse et en créant un nouveau tableau. Pour l'utiliser .push
correctement dans les ajouts de tableaux, commencez par boucler l'élément contenu et poussez chacun. ar2.forEach(each => { ar1.push(each); });
Une analyse comparative rapide (chaque test = 500 000 éléments ajoutés et les résultats sont des moyennes de plusieurs exécutions) a montré ce qui suit:
Firefox 3.6 (Mac):
arr[arr.length] = b
est plus rapide (300 ms contre 800 ms)arr.push(b)
est plus rapide (500 ms contre 900 ms)Safari 5.0 (Mac):
arr[arr.length] = b
est plus rapide (90 ms contre 115 ms)arr[arr.length] = b
est plus rapide (160 ms contre 185 ms)Google Chrome 6.0 (Mac):
J'aime arr.push()
mieux la syntaxe, mais je pense que je serais mieux avec la arr[arr.length]
version, au moins en vitesse brute. J'adorerais voir les résultats d'une exécution IE cependant.
Mes boucles de 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;
}
}
Je pense qu'il vaut la peine de mentionner que push peut être appelé avec plusieurs arguments, qui seront ajoutés au tableau dans l'ordre. Par exemple:
var arr = ['first'];
arr.push('second', 'third');
console.log(arr);
Par conséquent, vous pouvez utiliser push.apply pour ajouter un tableau à un autre tableau comme ceci:
var arr = ['first'];
arr.push('second', 'third');
arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr);
ES5 annoté a plus d'informations sur ce que font exactement push and apply .
Mise à jour 2016: avec spread , vous n'en avez plus besoin apply
, comme:
var arr = ['first'];
arr.push('second', 'third');
arr.push(...['fourth', 'fifth']);
console.log(arr) ;
Array.prototype.push.apply()
cependant l' utiliser .
Vous pouvez utiliser push
et apply
fonctionner pour ajouter deux tableaux.
var array1 = [11, 32, 75];
var array2 = [99, 67, 34];
Array.prototype.push.apply(array1, array2);
console.log(array1);
Il s'ajoutera array2
à array1
. array1
Contient maintenant [11, 32, 75, 99, 67, 34]
. Ce code est beaucoup plus simple que d'écrire des for
boucles pour copier chaque élément du tableau.
...
opérateur au lieu d'appliquer const a1 = [] const a2 = [5,6,7] const.push(...a2)
edit: coloration syntaxique
array1.concat(array2)
dans cette situation. L'appel à push
semble inutile.
Avec le nouvel opérateur de diffusion ES6 , il push
est encore plus facile de joindre deux baies en utilisant :
var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push(...arr2);
console.log(arr);
Cela ajoute le contenu de arr2
à la fin de arr
.
Si arr
est un tableau et val
est la valeur que vous souhaitez ajouter, utilisez:
arr.push(val);
Par exemple
var arr = ['a', 'b', 'c'];
arr.push('d');
console.log(arr);
Utilisation concat
:
a = [1, 2, 3];
b = [3, 4, 5];
a = a.concat(b);
console.log(a);
Javascript avec ECMAScript 5 standard qui est pris en charge par la plupart des navigateurs maintenant, vous pouvez utiliser apply()
pour ajouter array1
à 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 avec la norme ECMAScript 6 qui est pris en charge par Chrome et FF et IE Edge, vous pouvez utiliser l' spread
opérateur:
"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];
array2.push(...array1);
console.log(array2); // [1, 2, 3, 4, 5]
L' spread
opérateur remplacera array2.push(...array1);
par array2.push(3, 4, 5);
lorsque le navigateur réfléchit à la logique.
Point bonus
Si vous souhaitez créer une autre variable pour stocker tous les éléments des deux tableaux, vous pouvez le faire:
ES5 var combinedArray = array1.concat(array2);
ES6 const combinedArray = [...array1, ...array2]
L'opérateur d'étalement ( ...
) doit étaler tous les éléments d'une collection.
Si vous souhaitez ajouter deux tableaux -
var a = ['a', 'b'];
var b = ['c', 'd'];
alors vous pouvez utiliser:
var c = a.concat(b);
Et si vous voulez ajouter un enregistrement g
à array ( var a=[]
), vous pouvez utiliser:
a.push('g');
La push()
méthode ajoute de nouveaux éléments à la fin d'un tableau et renvoie la nouvelle longueur. Exemple:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");
// The result of fruits will be:
Banana, Orange, Apple, Mango, Kiwi
La réponse exacte à votre question est déjà répondue, mais examinons d'autres façons d'ajouter des éléments à un tableau.
La unshift()
méthode ajoute de nouveaux éléments au début d'un tableau et renvoie la nouvelle longueur. Exemple:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon", "Pineapple");
// The result of fruits will be:
Lemon, Pineapple, Banana, Orange, Apple, Mango
Et enfin, la concat()
méthode est utilisée pour joindre deux ou plusieurs tableaux. Exemple:
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
Il existe deux façons d'ajouter un tableau en JavaScript:
1) La push()
méthode ajoute un ou plusieurs éléments à la fin d'un tableau et renvoie la nouvelle longueur du tableau.
var a = [1, 2, 3];
a.push(4, 5);
console.log(a);
Production:
[1, 2, 3, 4, 5]
2) La unshift()
méthode ajoute un ou plusieurs éléments au début d'un tableau et renvoie la nouvelle longueur du tableau:
var a = [1, 2, 3];
a.unshift(4, 5);
console.log(a);
Production:
[4, 5, 1, 2, 3]
3) La concat()
méthode est utilisée pour fusionner deux tableaux ou plus. Cette méthode ne modifie pas les tableaux existants, mais renvoie à la place un nouveau tableau.
var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
console.log(arr3);
Production:
[ "a", "b", "c", "d", "e", "f" ]
4) Vous pouvez utiliser la .length
propriété du tableau pour ajouter un élément à la fin du tableau:
var ar = ['one', 'two', 'three'];
ar[ar.length] = 'four';
console.log( ar );
Production:
["one", "two", "three", "four"]
5) La splice()
méthode modifie le contenu d'un tableau en supprimant les éléments existants et / ou en ajoutant de nouveaux éléments:
var myFish = ["angel", "clown", "mandarin", "surgeon"];
myFish.splice(4, 0, "nemo");
//array.splice(start, deleteCount, item1, item2, ...)
console.log(myFish);
Production:
["angel", "clown", "mandarin", "surgeon","nemo"]
6) Vous pouvez également ajouter un nouvel élément à un tableau simplement en spécifiant un nouvel index et en attribuant une valeur:
var ar = ['one', 'two', 'three'];
ar[3] = 'four'; // add new element to ar
console.log(ar);
Production:
["one", "two","three","four"]
push
fait: il modifie le tableau d'origine en y poussant de nouveaux éléments. Suis-je en train de mal lire, ou faut-il le modifier?
Maintenant, vous pouvez profiter de la syntaxe ES6 et faire simplement:
let array = [1, 2];
console.log([...array, 3]);
garder immuable le tableau d'origine.
Si vous connaissez l'indice le plus élevé (tel que stocké dans une variable "i"), vous pouvez le faire
myArray[i + 1] = someValue;
Cependant, si vous ne savez pas, vous pouvez soit utiliser
myArray.push(someValue);
comme d'autres réponses le suggèrent, ou vous pouvez utiliser
myArray[myArray.length] = someValue;
Notez que le tableau est basé sur zéro, donc .length renvoie l'index le plus élevé plus un.
Notez également que vous n'avez pas à ajouter dans l'ordre et que vous pouvez en fait ignorer les valeurs, comme dans
myArray[myArray.length + 1000] = someValue;
Dans ce cas, les valeurs intermédiaires auront une valeur indéfinie.
C'est donc une bonne pratique lorsque vous parcourez un JavaScript pour vérifier qu'une valeur existe réellement à ce point.
Cela peut être fait par quelque chose comme ceci:
if(myArray[i] === "undefined"){ continue; }
si vous êtes certain de ne pas avoir de zéros dans le tableau, vous pouvez simplement faire:
if(!myArray[i]){ continue; }
Bien sûr, assurez-vous dans ce cas que vous n'utilisez pas la condition myArray [i] (comme certaines personnes sur Internet le suggèrent en se basant sur le fait que dès que i est supérieur, l'index le plus élevé renvoie un indéfini qui évalue à faux)
"undefined"
. Il faut lire void 0
! "undefined"
est une chaîne et "undefined" !== void 0
, par conséquent, votre if(myArray[i]
est faux, sauf si le tableau à index i
est défini sur la chaîne avec le contenu équivalent à 'u'+'n'+'d'+'e'+'f'+'i'+'n'+'e'+'d'
. Notez également que vous ne devez pas utiliser undefined
, utilisez plutôt void 0
. Parce que c'est void 0
toujours la valeur indéfinie, tandis que undefined
peut être définie via quelque chose comme function x(undefined) { alert(undefined) } x("hello world")
, donc vous ne pouvez pas être sûr si quelqu'un a accidentellement défini window["undefined"]=1
ou similaire.
Ajouter un seul élément
//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';
Ajouter plusieurs éléments
//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
Ajouter un tableau
//join two or more arrays
arrName.concat(newAry1, newAry2);
//newAry1,newAry2: Two different arrays which are to be combined (concatenated) to an existing array
arrName.push('newElemenet1, newElemenet2, newElemenet3')
?
arrName
longue 1
.
myarray[myarray.length] = 'new element value added to the end of the array';
myarray.length renvoie le nombre de chaînes du tableau. JS est basé sur zéro, donc la clé d'élément suivante du tableau sera la longueur actuelle du tableau. EX:
var myarray = [0, 1, 2, 3],
myarrayLength = myarray.length; //myarrayLength is set to 4
Je veux juste ajouter un extrait pour l'ajout non destructif d'un élément.
var newArr = oldArr.concat([newEl]);
Puisque Array.prototype.push ajoute un ou plusieurs éléments à la fin d'un tableau et renvoie la nouvelle longueur du tableau , parfois nous voulons simplement obtenir le nouveau tableau mis à jour afin que nous puissions faire quelque chose comme ceci:
const arr = [1, 2, 3];
const val = 4;
arr.concat([val]); // [1, 2, 3, 4]
Ou juste:
[...arr, val] // [1, 2, 3, 4]
vous pouvez le faire en utilisant la nouvelle fonctionnalité 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' ]
si vous souhaitez combiner 2 tableaux sans le doublon, vous pouvez essayer le code ci-dessous
array_merge = function (arr1, arr2) {
return arr1.concat(arr2.filter(function(item){
return arr1.indexOf(item) < 0;
}))
}
usage:
array1 = ['1', '2', '3']
array2 = ['2', '3', '4', '5']
combined_array = array_merge(array1, array2)
Sortie: [1,2,3,4,5]
Pour ajouter un seul élément à un tableau, utilisez la push()
méthode fournie par l'objet Array:
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango')
console.log(fruits)
push()
mute le tableau d'origine.
Pour créer un nouveau tableau à la place, utilisez la concat()
méthode Array:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
Remarquerez que concat()
n'ajoute pas réellement d'élément au tableau, mais crée un nouveau tableau, que vous pouvez affecter à une autre variable, ou réaffecter au tableau d'origine (en le déclarant comme let
, car vous ne pouvez pas réaffecter a const
):
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
let fruits = ['banana', 'pear', 'apple']
fruits = fruits.concat('mango')
Pour ajouter un élément multiple à un tableau, vous pouvez utiliser push()
en l'appelant avec plusieurs arguments:
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)
Vous pouvez également utiliser le concat()
méthode que vous avez vue précédemment, en passant une liste d'éléments séparés par une virgule:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango', 'melon', 'avocado')
console.log(allfruits)
ou un tableau:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat(['mango', 'melon', 'avocado'])
console.log(allfruits)
N'oubliez pas que, comme décrit précédemment, cette méthode ne mute pas le tableau d'origine, mais elle renvoie un nouveau tableau.
Publié à l' origine sur
Si vous souhaitez ajouter une seule valeur dans un tableau, utilisez simplement la méthode push. Il ajoutera un nouvel élément à la fin du tableau.
Mais si vous avez l'intention d'ajouter plusieurs éléments, stockez les éléments dans un nouveau tableau et concatendez le deuxième tableau avec le premier tableau ... comme vous le souhaitez.
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);
Nous n'avons pas de fonction d'ajout pour Array en javascript, mais nous avons push et unshift , imaginez que vous avez le tableau ci-dessous:
var arr = [1, 2, 3, 4, 5];
et nous aimons ajouter une valeur à ce tableau, nous pouvons le faire, arr.push (6) et il ajoutera 6 à la fin du tableau:
arr.push(6); // return [1, 2, 3, 4, 5, 6];
nous pouvons également utiliser unshift, regardez comment nous pouvons appliquer ceci:
arr.unshift(0); //return [0, 1, 2, 3, 4, 5];
Ce sont des fonctions principales pour ajouter ou ajouter de nouvelles valeurs aux tableaux.
Vous pouvez utiliser la méthode 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()
ajoute un nouvel élément à la fin d'un tableau.
pop()
supprime un élément de la fin d'un tableau.
Pour ajouter un objet (tel qu'une chaîne ou un nombre) à un tableau, utilisez -
array.push(toAppend);
Vous pouvez utiliser le push () si vous souhaitez ajouter des valeurs par exemple arr.push("Test1", "Test2");
Si vous avez un tableau, vous pouvez utiliser concat (), par exemple Array1.concat(Array2)
Si vous n'avez qu'un seul élément à ajouter, vous pouvez également essayer la méthode de longueur, par exemple array[aray.length] = 'test';