recherche

Maison  >  Questions et réponses  >  le corps du texte

JavaScript définit la clé de l'objet via une variable

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粉106301763P粉106301763422 Il y a quelques jours550

répondre à tous(2)je répondrai

  • P粉321676640

    P粉3216766402023-10-10 10:06:39

    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"}

    répondre
    0
  • P粉579008412

    P粉5790084122023-10-10 00:58:48

    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,
    }

    répondre
    0
  • Annulerrépondre