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"}Il s'appelleNom 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"}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, }