我正在寻找下面的任何替代方法来创建一个包含 1 到 N 的 JavaScript 数组,其中 N 仅在运行时已知。
var foo = []; for (var i = 1; i <= N; i++) { foo.push(i); }
对我来说,感觉应该有一种方法可以在没有循环的情况下做到这一点。
在 ES6 中使用数组from()和keys()方法。
from()
keys()
Array.from(Array(10).keys()) //=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
使用扩展运算符的较短版本。
[...Array(10).keys()] //=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
从 1 开始,将 map 函数传递给 Array from(),并带有一个具有length属性的对象:
length
Array.from({length: 10}, (_, i) => i + 1) //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]