Create an object with dynamic property names
javascript
Solution
If you're using ES6 (or something like Babel/browserify), you can write it like this:
iconMap : {
[KEYS.PHONE_TYPE] : 'icon-phone',
[KEYS.AGENT_TYPE] : 'icon-headphones'
};
Problem
I am trying to do this: ``` var KEYS = {} ; KEYS.PHONE_TYPE = 'phone-type'; KEYS.AGENT_TYPE = 'agent-type'; var myAppConfig = { ... iconMap : { KEYS.PHONE_TYPE : 'icon-phone', KEYS.AGENT_TYPE : 'icon-headphones' }; ... }; ``` But it is failing, with a message: `Expected ':' and instead saw '.'.` How can I initialize an object using indirect (non-literal) keynames? To be clear, the result I want is: ``` { 'phone-type' : 'icon-phone', 'agent-type' : 'icon-headphones' } ```