javascript-Python的单行列表理解代码的javascript版本

时间:2018-09-02 08:13:40

标签: javascript python arrays list

我是一名Python程序员,正在学习如何用JavaScript编写干净的代码。我想使用Javascript代码复制以下python代码:

array = [...] # some array
foo = [ x.data for x in array ] 
>>> foo = [ obj_1, obj_2, obj_3 ... ]

someDict = {'key_1': [0,1], 'key_2': [3,4], 'key_3': [5,6]} 
bar = [{key: someDict[key][i] for key in someDict.keys()} for i in range(2)]
>>> bar = [{'key_1': 0, 'key_2': 3, 'key_3': 5}, 
                {'key_1': 1, 'key_2': 4, 'key_3': 6}]

是否有任何“干净”的方式将上述python代码转换为javascript代码?希望只使用一行,而不要使用3-4行for-loop代码

1 个答案:

答案 0 :(得分:2)

对于第一个,您要寻找的功能是.map

const arr = [ { data: 'foo' }, { data: 'bar' } ];
console.log(
  arr.map(({ data }) => data)
);

第二,除了遍历对象中的每个条目,然后将对象值数组中的每个项目分配到累加器中的适当位置,除了迭代实际上没有其他方法。 }。记住要解构参数以最大程度地减少语法噪音:

reduce

它可能看起来不如列表理解那么干净,但是假设您正在使用Vanilla JS,您将必须进行上述操作以达到所需的结果。