JavaScript définit la clé de l'objet via une variable
P粉106301763
P粉106301763 2023-10-09 12:00:10
0
2
595

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/

P粉106301763
P粉106301763

répondre à tous(2)
P粉321676640

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"}
P粉579008412

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,
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal