Maison >interface Web >js tutoriel >Comment puis-je créer des objets JavaScript avec des clés dynamiques à partir de variables ?

Comment puis-je créer des objets JavaScript avec des clés dynamiques à partir de variables ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-08 10:45:12836parcourir

How Can I Create JavaScript Objects with Dynamic Keys from Variables?

Création d'objets avec des clés dynamiques

Pour accéder et analyser les éléments DOM dans Node.js, Cheerio est couramment utilisé. La question se pose de savoir comment créer dynamiquement un objet avec à la fois des clés et des valeurs dérivées de variables.

Traditionnellement, en JavaScript (avant ES6), la création d'objets avec des clés dynamiques nécessitait une notation entre crochets :

var obj = {};
obj[myKey] = value;

Dans le scénario fourni, cela peut être implémenté comme :

stuff = function (thing, callback) {
  var inputs  = $('div.quantity > input').map(function(){
    var key   = this.attr('name')
     ,  value = this.attr('value')
     ,  ret   = {};

     ret[key] = value;
     return ret;
  }) 

  callback(null, inputs);
}

Cependant, avec l'avènement d'ES6, les clés calculées peuvent être utilisées dans les objets initialiseurs, offrant une syntaxe plus concise :

var obj = {
  [myKey]: value,
}

L'application de ceci au problème en question donne :

stuff = function (thing, callback) {
  var inputs  = $('div.quantity > input').map(function(){
    return {
      [this.attr('name')]: this.attr('value'),
    };
  }) 

  callback(null, inputs);
}

Notez que l'utilisation de clés calculées nécessite un transpileur tel que Babel ou Traceur de Google pour compatibilité du navigateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn