Je tire des éléments du DOM avec jQuery et je veux définir une propriété sur un objet en utilisant l' id
élément DOM.
Exemple
const obj = {}
jQuery(itemsFromDom).each(function() {
const element = jQuery(this)
const name = element.attr('id')
const value = element.attr('value')
// Here is the problem
obj.name = value
})
Si itemsFromDom
inclut un élément avec un id
de "myId", je veux obj
avoir une propriété nommée "myId". Ce qui précède me donne name
.
Comment nommer une propriété d'un objet à l'aide d'une variable à l'aide de JavaScript?
javascript
jquery
object
syntax
Todd R
la source
la source
Réponses:
Vous pouvez utiliser cette syntaxe équivalente:
la source
Avec ECMAScript 2015, vous pouvez le faire directement dans la déclaration d'objet en utilisant la notation entre crochets:
Où
key
peut être n'importe quelle sorte d'expression (par exemple une variable) renvoyant une valeur:la source
obj[name]=value
moment où je pourrais simplement utiliser votre suggestion à la placeVous pouvez même créer une liste d'objets comme celui-ci
la source
Il existe deux notations différentes pour accéder aux propriétés des objets
La notation par points est rapide et facile, mais vous devez utiliser explicitement le nom réel de la propriété. Pas de substitution, de variables, etc.
La notation entre parenthèses est ouverte. Il utilise une chaîne mais vous pouvez produire la chaîne en utilisant n'importe quel code js légal. Vous pouvez spécifier la chaîne comme littérale (bien que dans ce cas la notation par points serait plus facile à lire) ou utiliser une variable ou calculer d'une manière ou d'une autre.
Ainsi, ceux - ci configurent le myObj propriété nommée prop1 à la valeur Bonjour :
Pièges:
tl; dnr : Si vous voulez calculer ou référencer la clé, vous devez utiliser la notation entre crochets . Si vous utilisez explicitement la clé, utilisez la notation par points pour un code clair simple.
Remarque: il existe d'autres bonnes et bonnes réponses, mais personnellement, je les ai trouvées un peu brèves en raison d'une faible connaissance de la bizarrerie à la volée de JS. Cela pourrait être utile à certaines personnes.
la source
Avec lodash, vous pouvez créer un nouvel objet comme celui-ci _.set :
Ou vous pouvez définir un objet existant comme ceci:
Vous devez faire attention si vous souhaitez utiliser le point (".") Dans votre chemin, car lodash peut définir une hiérarchie, par exemple:
la source
Nous devons d'abord définir la clé comme variable, puis nous devons affecter la clé comme objet., Par exemple
la source
Avec l'avènement de ES2015 Object.assign et des noms de propriété calculés, le code de l'OP se résume à:
la source
Si vous souhaitez ajouter des champs à un objet de manière dynamique, la manière la plus simple de le faire est la suivante:
Cela créera un objet de données qui a les champs suivants:
la source
Si vous avez un objet, vous pouvez créer un tableau de clés, puis le mapper et créer un nouvel objet à partir des clés d'objet et des valeurs précédentes.
la source
ajavascript a deux types d'annotation pour récupérer les propriétés des objets javascript:
Obj = {};
1) (.) Annotation par exemple. Obj.id cela ne fonctionnera que si l'objet a déjà une propriété avec le nom 'id'
2) ([]) annotation par exemple. Obj [id] ici si l'objet n'a pas de propriété avec le nom 'id', il créera une nouvelle propriété avec le nom 'id'.
donc pour l'exemple ci-dessous:
Une nouvelle propriété sera toujours créée lorsque vous écrivez Obj [nom]. Et si la propriété existe déjà avec le même nom, elle la remplacera.
la source
Lié au sujet, pas spécifiquement pour jquery. J'ai utilisé cela dans des projets ec6 react, peut-être aide quelqu'un:
PS: Attention au caractère de citation.
la source
objectname.newProperty = value;
la source
la source