Add a property to a JavaScript object using a variable as the name?

Todd R picture Todd R · Mar 29, 2009 · Viewed 326.6k times · Source

I'm pulling items out of the DOM with jQuery and want to set a property on an object using the id of the DOM element.

Example

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

If itemsFromDom includes an element with an id of "myId", I want obj to have a property named "myId". The above gives me name.

How do I name a property of an object using a variable using JavaScript?

Answer

Christian C. Salvadó picture Christian C. Salvadó · Mar 29, 2009

You can use this equivalent syntax:

obj[name] = value