In Javascript a dictionary comprehension, or an Object `map`

前端 未结 6 1423
青春惊慌失措
青春惊慌失措 2020-12-28 13:01

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}

A

6条回答
  •  南笙
    南笙 (楼主)
    2020-12-28 13:30

    ES5 introduced Map for an OrderedDict. A Map comprehension might look like:

    Map( Array.map(function(o){return[ key_maker(o), val_maker(o) ]}))
    

    Example:

    > a_list = [ {x:1}, {x:2}, {x:3} ]
    < [ Object, Object, Object ]
    >
    > let dict = new Map(a_list.map(function(o){return[ o.x, o.x**2 ]}))
    < Map[3]
    < 0 : {1 => 1}
    < 1 : {2 => 4}
    < 2 : {3 => 9}
    >
    > dict.get(2)
    < 4
    

提交回复
热议问题