En PHP, je ferais quelque chose comme:Ajouter une nouvelle valeur à un tableau existant en JavaScript
$array = array();
$array[] = "value1";
$array[] = "value2";
$array[] = "value3";
Comment puis-je faire la même chose en JavaScript?
En PHP, je ferais quelque chose comme:Ajouter une nouvelle valeur à un tableau existant en JavaScript
$array = array();
$array[] = "value1";
$array[] = "value2";
$array[] = "value3";
Comment puis-je faire la même chose en JavaScript?
Vous n'avez pas besoin de jQuery pour cela. Utilisez javascript régulier
var arr = new Array();
// or var arr = [];
arr.push('value1');
arr.push('value2');
Note: En javascript, vous pouvez également utiliser des objets comme des tableaux, mais qui ont encore accès aux prototypes Array. Cela rend le objet comme se comporte 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 p.ex obj[0]
.
exactement comment l'objet "jQuery" retourné par '$()' fonctionne –
Eh bien, je suis sûr qu'il y a un plugin qui vous permet de le faire avec jQuery: P –
Que diriez-vous de '[]' au lieu de 'nouveau tableau() 'et' {} 'au lieu de' new Object() '... – James
Vous pouvez utiliser la méthode .push()
(qui est la norme JavaScript)
par exemple
var primates = new Array();
primates.push('monkey');
primates.push('chimp');
Cela n'a rien à voir avec jQuery, mais seulement 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 du 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]
. Plutôt, ce dernier est plus proche de [undefined]
, car un seul argument entier au constructeur Array
indique la longueur de tableau désiré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 faire autre chose que de construire un tableau.+1 pour '[]' au lieu de 'new Array()'. – BalusC
array = ["value1", "value2", "value3"]
ce n'est pas tant que jquery javascript
ce n'est pas * ajouter * des valeurs à un tableau, c'est créer un tableau avec des valeurs déjà dedans. – nickf
Je ne voudrais pas downvote pour cela, mais merci pour au moins expliquer votre opinion –
jQuery est une abstraction de JavaScript. Pensez à jQuery comme un sous-ensemble de JavaScript, destiné à travailler avec le DOM. Cela étant dit; il y a des fonctions pour ajouter des articles à une collection. Je voudrais utiliser le JavaScript de base dans votre cas si:
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");
Je l'appellerais un «cadre» ... et ce n'est pas un sous-ensemble non plus. – mpen
Vous devez initialiser la variable 'array' en un objet' Array' dans votre premier exemple, sinon ce sera 'undefined' et vous ne pourrez pas l'appeler' push'. –
@Ionut G. Stan: J'initialise le tableau en faisant 'var array = [];' – roosteronacid
tableau est un objet natif JavaScript, pourquoi avez-vous juste essayer de ne pas utiliser l'API de celui-ci? Connaître l'API seul vous fera gagner du temps lorsque vous passerez au JavaScript pur ou à un autre framework.
Il existe plusieurs possibilités différentes, utilisez donc celle qui répond le mieux à vos besoins.
Création d'un réseau avec des valeurs:
var array = ["value1", "value2", "value3"];
L'ajout de valeurs à la fin
var array = [];
array.push("value1");
array.push("value2");
array.push("value3");
L'ajout de valeurs aux BEGIN:
var array = [];
array.unshift("value1");
array.unshift("value2");
array.unshift("value3");
valeurs Ajout à un index:
var array = [];
array[index] = "value1";
ou en utilisant épissure
array.splice(index, 0, "value1", "value2", "value3");
Choisissez celui qui vous convient.
Celui avec des index ne fonctionne pas pour moi. Je l'utilise dans une fonction map $ ('select [id^= "filter _"]'). Map (function() { var nom = $ (this) .prop ('nom'); filtres [nom] = $ (this) .val(); –
Il existe 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
pousser au 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]
L'utilisation .push()
est la meilleure façon d'ajouter une tableau, puisque vous n'avez pas besoin de savoir combien d'éléments sont déjà là, d vous pouvez ajouter plusieurs éléments dans un appel de fonction.
En effet, vous devez initialiser votre tableau puis juste après utiliser la ligne de commande array.push().
var array = new Array();
array.push("first value");
array.push("second value");
jQuery n'est pas un langage; JavaScript est. – mpen
http://i.stack.imgur.com/ssRUr.gif – Broxzier
@ChrisB - pour ceux qui se demandent, Javascript est le langage utilisé pour implémenter le glorieux JQuery. – Davor