我正在寻找下面的任何替代方法来创建一个包含1到N的JavaScript数组,其中N仅在运行时已知.
var foo = [];
for (var i = 1; i <= N; i++) {
foo.push(i);
}
Run Code Online (Sandbox Code Playgroud)
对我而言,感觉应该有一种没有循环的方法.
在PHP中,你可以做...
range(1, 3); // Array(1, 2, 3)
range("A", "C"); // Array("A", "B", "C")
Run Code Online (Sandbox Code Playgroud)
也就是说,有一个函数可以通过传递上限和下限来获取一系列数字或字符.
是否内置了JavaScript本身的内容?如果没有,我将如何实施它?
如何使用*ngFor多次重复HTML元素?
例如:如果我将成员变量赋值为20.如何使用*ngFor指令使div重复20次?
创建这个数组最简洁的方法是什么:
var x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
Run Code Online (Sandbox Code Playgroud)
例如,一个for循环:
var x = [];
for (var i=1;i<=20;i++) {
x.push(i);
}
Run Code Online (Sandbox Code Playgroud)
或while循环:
var x = [], i = 1, endInt = 20;
while (i <= endInt) {
x.push(i);
i++;
}
Run Code Online (Sandbox Code Playgroud)
是否会有其他更简洁的例子 - 换句话说 - 更少的代码?我正在考虑像Ruby这样的东西,我认为等效的代码就像这样简单1..20.我不知道JavaScript中的语法,但我想知道是否有更短的方法来做同样的事情.
更新:我没有考虑删除分号或var问题的答案,但我不得不承认这个问题意味着.我对算法比对剃须字节更感兴趣.对不起,如果我不清楚!另外,将它变成一个函数很简单,只需拍打function range(start, end) { /* guts here */ }它就可以了.问题是对"胆量"有新的方法.