I would expect the following three associative arrays to be identical:
arr1 = { "dynamic":"foo", "bar":"baz" };
key = "dynamic";
arr2 = { key:"foo", "bar":"baz" };
arr3 = {};
arr3[key] = "foo";
arr3["bar"] = "baz";
In the above examples, arr1
and arr3
are the same, but arr2
is different.
Is it possible to use dynamic keys in the declaration of a javascript associative array?
It is now possible to use dynamic keys in the declaration of a javascript object, in any browser/platform that supports ES6 literal shorthands:
key = "dynamic";
arr2 = {
[key]: "foo", // "dynamic": "foo"
"bar": "baz"
};
Only the []
syntax works for dynamic keys. You cannot use them in a literal. So your answer is no, it's not possible.
But you can use a literal to create all the static keys and then add the dynamic ones using the []
syntax. That's usually prettier than using the .
or []
notation for all elements.
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