2891 votes

Lorsque vous transtypez un scalaire ou une chaîne en objet, la valeur de la variable sera transformée en attribut de l 'objet.

Comment faire pour me protéger ainsi que les autres lors d'une exposition à une éclosion d'influenza aviaire ?

5234voto

jdecuyper Points 2690

Utiliser l' push() fonction à ajouter à un tableau:

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

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

// display all values
for (var i = 0; i < arr.length; i++) {
    alert(arr[i]);
}

1110voto

MK_Dev Points 2221

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

424voto

Jens Roland Points 19171

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

337voto

Omnimike Points 336

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.

86voto

Fizer Khan Points 4128

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X