Voici mon objet littéral :
var obj = {key1: value1, key2: value2};
Comment puis-je ajouter un champ key3
con value3
à l'objet ?
Voici mon objet littéral :
var obj = {key1: value1, key2: value2};
Comment puis-je ajouter un champ key3
con value3
à l'objet ?
Il existe deux façons d'ajouter de nouvelles propriétés à un objet :
var obj = {
key1: value1,
key2: value2
};
obj.key3 = "value3";
obj["key3"] = "value3";
La première forme est utilisée lorsque vous connaissez le nom de la propriété. La deuxième forme est utilisée lorsque le nom de la propriété est déterminé dynamiquement. Comme dans cet exemple :
var getProperty = function (propertyName) {
return obj[propertyName];
};
getProperty("key1");
getProperty("key2");
getProperty("key3");
A réel Un tableau JavaScript peut être construit en utilisant l'un ou l'autre :
var arr = [];
var arr = new Array();
Oui Nosredna, vous avez raison. J'ai corrigé après votre commentaire sur la réponse de Seth. Je connais les implications, c'était juste l'inertie de mon esprit :)
Obj est un objet. La partie entre (et incluant) les accolades est le littéral objet. obj n'est pas un littéral objet.
...bien qu'il soit recommandé (également par JSLint) d'utiliser la première notation du constructeur Array... Juste pour que ce soit clair...
Vous pouvez utiliser l'une ou l'autre des méthodes suivantes (à condition que key3 soit la clé que vous voulez utiliser)
arr[ 'key3' ] = value3;
ou
arr.key3 = value3;
Si key3 est une variable, alors vous devez faire :
var key3 = 'a_key';
var value3 = 3;
arr[ key3 ] = value3;
Après cela, la demande arr.a_key
retournerait la valeur de value3
un littéral 3
.
Il ne s'agit pas d'un tableau mais d'un objet. Les tableaux JS ne sont indexés que par des entiers. Essayez de faire arr.length et il retournera 0. Plus de lecture à ce sujet : less-broken.com/blog/2010/12/
Le lien de @DevAntoine n'est pas accessible. Si vous voulez obtenir la "longueur" de ce type de tableau, utilisez : Object.keys(your_array).length Pour en savoir plus sur ce problème, voir : stackoverflow.com/questions/21356880/array-length-returns-0
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.
5 votes
Eh bien, toute la question des tableaux associatifs en JS est bizarre, parce que vous pouvez faire ça... dreaminginjavascript.wordpress.com/2008/06/27/
2 votes
@Nosredna - le fait est que les tableaux associatifs n'existent pas en javascript. Dans cet article, il ajoute des propriétés d'objet à un objet tableau, mais celles-ci ne font pas vraiment partie du "tableau".
2 votes
Existe-t-il un moyen de définir de manière conditionnelle des paires clé:valeur dans un objet littéral avec les futures implémentations ES+ ?