web-dev-qa-db-fra.com

Ajouter une nouvelle valeur à un tableau existant en JavaScript

En PHP, je ferais quelque chose comme:

$array = array();
$array[] = "value1";
$array[] = "value2";
$array[] = "value3";

Comment pourrais-je faire la même chose en JavaScript?

252
Andrew

Vous n'avez pas besoin de jQuery pour cela. Utiliser du javascript classique

var arr = new Array();
// or var arr = [];
arr.Push('value1');
arr.Push('value2');

Remarque: en javascript, vous pouvez également utiliser des objets en tant que tableaux, tout en ayant accès aux prototypes de tableaux. Cela fait que l'objet se comporte comme un tableau:

var obj = new Object();
Array.prototype.Push.call(obj, 'value');

va créer un objet qui ressemble à:

{
    0: 'value',
    length: 1
}

Vous pouvez accéder aux vaules comme un tableau normal f.ex obj[0].

377
David Hellsing

Cela n'a rien à voir avec jQuery, mais JavaScript en général.

Pour créer un tableau en JavaScript:

var a = [];

Ou:

var a = ['value1', 'value2', 'value3'];

Pour ajouter des valeurs à la fin d'un tableau existant:

a.Push('value4');

Pour créer un nouveau tableau, vous devriez vraiment utiliser [] au lieu de new Array() pour les raisons suivantes:

  • new Array(1, 2) est équivalent à [1, 2], mais new Array(1) est pas équivalent à [1]. Ce dernier est plutôt plus proche de [undefined], puisqu'un seul argument entier du constructeur Array indique la longueur de tableau souhaitée.
  • Array, comme toute autre classe JavaScript intégrée, n'est pas un mot clé. Par conséquent, quelqu'un pourrait facilement définir Array dans votre code pour effectuer autre chose que la construction d'un tableau.
107
Mike

Array est un objet natif JavaScript. Pourquoi n'essayez-vous pas simplement d'utiliser son API? En connaissant l'API seule, vous gagnerez du temps lorsque vous passerez à JavaScript pur ou à un autre framework.

Il existe différentes possibilités, utilisez donc celle qui répond le mieux à vos besoins.

Créer un tableau avec des valeurs:

var array = ["value1", "value2", "value3"];

Ajouter des valeurs à la fin

var array = [];
array.Push("value1");
array.Push("value2");
array.Push("value3");

Ajouter des valeurs au début:

var array = [];
array.unshift("value1");
array.unshift("value2");
array.unshift("value3");

Ajouter des valeurs à un index:

var array = [];
array[index] = "value1";

ou en utilisant une épissure

array.splice(index, 0, "value1", "value2", "value3");

Choisissez celui dont vous avez besoin.

34
nemisj

Vous pouvez utiliser la méthode .Push() (JavaScript standard)

par exemple.

var primates = new Array();
primates.Push('monkey');
primates.Push('chimp');
12
mopoke

Il y a plusieurs façons:

Instanciation du tableau:

var arr;

arr = new Array(); // empty array

// ---

arr = [];          // empty array

// ---

arr = new Array(3);
alert(arr.length);  // 3
alert(arr[0]); // undefined

// ---

arr = [3];
alert(arr.length);  // 1
alert(arr[0]); // 3

poussant vers le tableau:

arr = [3];     // arr == [3]
arr[1] = 4;    // arr == [3, 4]
arr[2] = 5;    // arr == [3, 4, 5]
arr[4] = 7;    // arr == [3, 4, 5, undefined, 7]

// ---

arr = [3];
arr.Push(4);        // arr == [3, 4]
arr.Push(5);        // arr == [3, 4, 5]
arr.Push(6, 7, 8);  // arr == [3, 4, 5, 6, 7, 8]

Utiliser .Push() est le meilleur moyen d’ajouter à un tableau, car vous n’avez pas besoin de savoir combien d’éléments sont déjà présents et vous pouvez ajouter de nombreux éléments dans un seul appel de fonction.

12
nickf
array = ["value1", "value2", "value3"]

ce n'est pas tellement jquery que javascript

2
Antony Hatchkins

En effet, vous devez initialiser votre tableau puis juste après, utilisez la ligne de commande array.Push ().

var array = new Array();
array.Push("first value");
array.Push("second value");
2
Sitepor500.com.br

jQuery est une abstraction de JavaScript. Pensez à jQuery comme un sous-ensemble de JavaScript, destiné à travailler avec le DOM. Cela étant dit; il existe des fonctions pour ajouter des articles à une collection. J'utiliserais toutefois du JavaScript de base dans votre cas:

var array;

array[0] = "value1";
array[1] = "value2";
array[2] = "value3";

... Ou:

var array = ["value1", "value2", "value3"];

... Ou:

var array = [];

array.Push("value1");
array.Push("value2");
array.Push("value3");
1
cllpse