【发布时间】:2020-06-13 05:53:46
【问题描述】:
我想创建一个从一系列数字创建的对象,例如给定以下数据
amount: 100
step: 5
我想创建一个包含 20 步(100 除以 5)的对象范围,看起来像这样
{
0: {label: 0},
5: {label: 5},
10: {label: 10}
...
100: {label: 100}
}
我几乎使用数组到达那里
我发现了如何创建一个包含所需对象的数组,但它嵌套了一层,而且它不是对象。
new Array(100/5 + 1)
.fill()
.map((val, index) => {
const key = index * 5
return {[key]: {label: key}}
}))
以上返回
[
0: {
0: {label: 0}
},
1: {
5: {label: 5}
},
2: {
10: {label: 10}
}
]
【问题讨论】:
-
这里的实际用例是什么?为什么一个简单的
for循环不能处理它? -
一个for循环可以处理它,但是使用对象和数组函数更干净,不是吗?我刚想出自己的解决方案,谈橡皮鸭开发,将其添加为答案
-
坦率地说,我想不出比用这样的 map 多次调用函数更糟糕的方法来解决这个问题了。当然,只使用
for循环会更有效。
标签: javascript arrays object ecmascript-6