如果我有以下内容:
var a = 5;
我如何才能将其转换为
[0,1,2,3,4]
我知道这是一个非常简单的问题,但我从未见过它,也无法想到一个简单的方法。
答案 0 :(得分:8)
您可以使用循环并执行:
var a = 5;
var arr = [];
for(var i=0; i<a; i++) {
arr.push(i);
}
正如其他人在答案中所述,
数组直接赋值甚至比推送
更快
使用jsperf
后,Chrome / Firefox似乎不正确。见下文:
由此,我将使用上面答案中所述的push
。
答案 1 :(得分:4)
数组直接赋值甚至比Push更快:
var arr=[],n=5;//N is 5 in your case
while(n--)
{
arr[n]=n;
};
Internet Explorer的性能证明:
答案 2 :(得分:1)
简单明了的解决方案就是使用for循环,
var a = 5, arr = [];
for (var i=0;i<a;arr.push(i++));
arr
现在包含您的升序数组a
(5)。
或使用直接分配,
var a = 5, arr = [];
while (a--) arr[a] = a;
稍微缩短一点算法。