Je construis des objets en JavaScript et je les place dans un tableau, je stocke la clé que je souhaite utiliser dans une variable, puis je crée mon objet comme ceci?:
var key = "happyCount"; myArray.push( { key : someValueArray } );
Mais lorsque j'essaie de vérifier le tableau d'objets pour chaque objet, les clés sont "key"
et non la valeur de la clé variable. Existe-t-il un moyen de définir la valeur d'une clé à partir d'une variable??
Fiddle pour une meilleure explication?: http://jsfiddle.net/Fr6eY/3/
Dans ES6, vous pouvez le faire.
var key = "name"; var person = {[key]:"John"}; // same as var person = {"name" : "John"} console.log(person); // should print Object { name="John"}
var key = "name";
var person = {[key]:"John"};
console.log(person); // should print Object { name="John"}
Il s'appelle Nom de propriété calculé et il est implémenté en utilisant la notation entre crochets (crochets) []
Exemple?: { [variableName] : someValue }
Pour ES5, essayez quelque chose comme ?a
var yourObject = {}; yourObject[yourKey] = "yourValue"; console.log(yourObject );
Exemple?:
var person = {}; var key = "name"; person[key] /* this is same as person.name */ = "John"; console.log(person); // should print Object { name="John"}
var person = {};
var key = "name";
person[key] /* this is same as person.name */ = "John";
console.log(person); // should print Object { name="John"}
Vous devez d'abord créer l'objet, puis le définir à l'aide de []
.
var key = "happyCount"; var obj = {}; obj[key] = someValueArray; myArray.push(obj);
Mise à jour 2021?:
La fonctionnalitéComputed Property Names, introduite dans ECMAScript 2015 (ES6), vous permet de calculer dynamiquement les noms des propriétés d'objet dans la notation littérale d'objet JavaScript.
const yourKeyVariable = "happyCount"; const someValueArray= [...]; const obj = { [yourKeyVariable]: someValueArray, }