¿Agregar una propiedad a un objeto JavaScript usando una variable como nombre?
Estoy sacando elementos del DOM con jQuery y quiero establecer una propiedad en un objeto usando el id
elemento DOM.
Ejemplo
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
incluye un elemento con id
"myId", quiero obj
tener una propiedad llamada "myId". Lo anterior me da name
.
¿Cómo nombro una propiedad de un objeto usando una variable usando JavaScript?
Aceptado
Puede utilizar esta sintaxis equivalente:
obj[name] = value
Ejemplo :
let obj = {};
obj["the_key"] = "the_value";
o con características de ES6:
let key = "the_key";
let obj = {
[key]: "the_value",
};
en ambos ejemplos, console.log(obj)
devolverá:{ the_key: 'the_value' }
Con ECMAScript 2015 puedes hacerlo directamente en la declaración de objeto usando notación entre corchetes:
var obj = {
[key]: value
}
Donde key
puede haber cualquier tipo de expresión (por ejemplo, una variable) que devuelva un valor:
var obj = {
['hello']: 'World',
[x + 2]: 42,
[someObject.getId()]: someVar
}