我是一名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代码
答案 0 :(得分:2)
对于第一个,您要寻找的功能是.map
:
const arr = [ { data: 'foo' }, { data: 'bar' } ];
console.log(
arr.map(({ data }) => data)
);
第二,除了遍历对象中的每个条目,然后将对象值数组中的每个项目分配到累加器中的适当位置,除了迭代实际上没有其他方法。 }。记住要解构参数以最大程度地减少语法噪音:
reduce
它可能看起来不如列表理解那么干净,但是假设您正在使用Vanilla JS,您将必须进行上述操作以达到所需的结果。