Maison >interface Web >js tutoriel >Comment puis-je créer des objets JavaScript avec des clés de chaîne attribuées dynamiquement ?

Comment puis-je créer des objets JavaScript avec des clés de chaîne attribuées dynamiquement ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-06 05:07:13552parcourir

How Can I Create JavaScript Objects with Dynamically Assigned String Keys?

Utiliser des propriétés dynamiques dans les objets

La création d'objets avec des propriétés variables en JavaScript peut parfois présenter des défis. Dans ce contexte, nous examinerons les techniques permettant d'attribuer des chaînes en tant que clés d'objet, en fournissant des solutions pour la dernière norme ES2015 et les versions JavaScript antérieures.

Solution ES2015 (ES6)

1. Propriétés calculées :

ES2015 introduit le concept de propriétés calculées, permettant la création d'objets avec des clés calculées dynamiquement :

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

Application de cela au scénario :

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

  callback(null, inputs);
};

Remarque : Pour la compatibilité du navigateur, pensez à utiliser un transpilateur tel que Babel.

Solution pré-ES2015

2. Notation entre crochets :

ES5 et les versions antérieures nécessitent l'utilisation de la notation entre crochets pour attribuer des clés dynamiques :

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

Dans ce cas :

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

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

  callback(null, inputs);
};

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