Réponses
Trop de publicités?Si vous êtes seulement en ajoutant une variable unique, alors push()
fonctionne très bien. Si vous avez besoin d'ajouter un autre tableau, utilisez concat()
:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
var ar3 = ar1.concat(ar2);
alert(ar3);
Va cracher "1,2,3,4,5,6"
Beaucoup d'info ici
Certains rapide analyse comparative (chaque test = 500k ajouté des éléments, et les résultats sont les moyennes de plusieurs courses) ont révélé ce qui suit:
Firefox 3.6 (Mac):
- Les petits tableaux:
arr[arr.length] = b
est plus rapide (300ms vs 800ms) - De grands tableaux:
arr.push(b)
est plus rapide (500ms vs 900ms)
Safari 5.0 (Mac):
- Les petits tableaux:
arr[arr.length] = b
est plus rapide (90ms vs 115ms) - De grands tableaux:
arr[arr.length] = b
est plus rapide (160ms vs 185ms)
Google Chrome 6.0 (Mac):
- Les petits tableaux: Pas de différence significative (et Chrome est RAPIDE! Seulement ~38ms !!)
- De grands tableaux: Pas de différence significative (160ms)
J'aime l' arr.push()
de la syntaxe de mieux, mais je pense que pour mon utilisation, je serais mieux avec l' arr[arr.length]
version, au moins dans les premières de la vitesse. Je serais ravi de voir les résultats d'un IE terme cependant.
Mon analyse comparative des boucles:
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 la poussée peut être appelée avec plusieurs arguments, qui sera annexée au tableau de l'ordre. Par exemple:
var arr = ['first'];
arr.push('second', 'third');
console.log(arr); // ['first', 'second', 'third']
En conséquence de cela, vous pouvez utiliser le pousser.appliquer pour ajouter un tableau à un autre tableau, comme ceci:
arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr); // ['first', 'second', 'third', 'forth', 'fifth']
Annoté ES5 a plus d'infos sur exactement ce que les pousser et de les appliquer à faire.
Vous pouvez utiliser push
et apply
fonction pour ajouter deux tableaux.
var array1 = [11,32,75];
var array2 = [99,67,34];
Array.prototype.push.apply(array1, array2);
Il permet de copier array2
de array1
. Maintenant, array1
contient [11, 32, 75, 99, 67, 34]
.
Ce code est beaucoup plus simple que d'écrire for
boucles d'exemplaire de chaque et tous les éléments du tableau.