【问题标题】:List comprehension based on a dictionary in Javascript基于 Javascript 中的字典的列表理解
【发布时间】:2017-06-17 01:42:08
【问题描述】:

我经常在 Python 中使用列表推导式专门从键值字典创建列表,以排序方式,我在列表中定义排序键并使用推导式获取排序列表,我一直在环顾四周,但是除了使用地图之外,找不到在 Javascript 中执行以下操作的类似方法:

在 Javascript 中有没有更好的方法来做到这一点?

在 Python 中:

d = {'k2':'v2','k4':'v4','k3':'v3','k6':'v6','k5':'v5'}
list_keys=['k1','k2','k3','k4','k5','k6']

list_wanted_values = [d[c] for c in list_keys]
#list_wanted_values=['v1','v2','v3','v4','v5','v6']

在 Javascript 中:

var js_list_wanted_values = list_keys.map(function(k){
    js_list_wanted_values[k] = d[k]
)}

【问题讨论】:

  • 只是python 代码的注释:您不需要定义list_keys 列表。你可以这样做:list_wanted_values = [d[c] for c in sorted(d.keys())]list_wanted_values = [v for k, v in sorted(d.items(), key=lambda x: x[0])] 以避免字典查找
  • @Ev.Kounis 感谢您的来信。这确实更优雅!

标签: javascript python list dictionary list-comprehension


【解决方案1】:

也许是这样

var js_list_wanted_values = list_keys.map(k => d[k])

【讨论】:

    【解决方案2】:

    你的map应该更像

    var js_list_wanted_values = list_keys.map(function(k){
        return d[k]
    })
    

    map() 根据被迭代数组中每个元素的值返回一个新值来创建一个新数组

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-09
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多