I am building some objects in JavaScript and pushing those objects into an array, I am storing the key I want to use in a variable then creating my objects like so:
var key = "happyCount"; myArray.push( { key : someValueArray } );
but when I try to examine my array of objects for every object the key is "key"
instead of the value of the variable key. Is there any way to set the value of the key from a variable?
Fiddle for better explanation: http://jsfiddle.net/Fr6eY/3/
No, JavaScript objects cannot have duplicate keys. The keys must all be unique.
Use bracket notation to get an object's value by a variable key, e.g. obj[myVar] . The variable or expression in the brackets gets evaluated, so if a key with the computed name exists, you will get the corresponding value back. Copied!
To create an object with dynamic keys in JavaScript, you can use ES6's computed property names feature. The computed property names feature allows us to assign an expression as the property name to an object within object literal notation.
You need to make the object first, then use []
to set it.
var key = "happyCount"; var obj = {}; obj[key] = someValueArray; myArray.push(obj);
UPDATE 2021:
Computed property names feature was introduced in ECMAScript 2015 (ES6) that allows you to dynamically compute the names of the object properties in JavaScript object literal notation.
const yourKeyVariable = "happyCount"; const someValueArray= [...]; const obj = { [yourKeyVariable]: someValueArray, }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With