我正在寻找下面的任何替代方法来创建一个包含1到N的JavaScript数组,其中N仅在运行时已知.
var foo = [];
for (var i = 1; i <= N; i++) {
foo.push(i);
}
Run Code Online (Sandbox Code Playgroud)
对我而言,感觉应该有一种没有循环的方法.
我在es-discuss邮件列表中遇到了以下代码:
Array.apply(null, { length: 5 }).map(Number.call, Number);
Run Code Online (Sandbox Code Playgroud)
这产生了
[0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
为什么这是代码的结果?这里发生了什么事?
用谷歌搜索后,我找到了两个解决方案:
var data = [...Array(10).keys()];
console.log(data);
var data1 = Array(8).fill().map((_, i) => i);
console.log(data1);
Run Code Online (Sandbox Code Playgroud)
data1显示[0,1,...,7]但是数据只显示[[object Array Iterator]]我如何实际看到数字.
我需要它来对数字进行一些迭代(Euler项目的一部分).
以前我在Python中做了很多Euler挑战.现在我决定重新访问它并尽可能多地使用JS(尽可能多的ES6语法)来帮助我发展我的js技能.