如何从值创建顺序值数组?

时间:2015-01-25 17:05:37

标签: javascript

如果我有以下内容:

var a = 5;

我如何才能将其转换为

[0,1,2,3,4]

我知道这是一个非常简单的问题,但我从未见过它,也无法想到一个简单的方法。

3 个答案:

答案 0 :(得分:8)

您可以使用循环并执行:

var a = 5;
var arr = [];

for(var i=0; i<a; i++) {
   arr.push(i);    
}

正如其他人在答案中所述,

  

数组直接赋值甚至比推送

更快

使用jsperf后,Chrome / Firefox似乎不正确。见下文:

enter image description here

http://jsperf.com/js-array232

由此,我将使用上面答案中所述的push

答案 1 :(得分:4)

数组直接赋值甚至比Push更快:

var arr=[],n=5;//N is 5 in your case
while(n--)
{
  arr[n]=n;
};

Internet Explorer的性能证明: enter image description here

http://jsperf.com/js-array232/4

答案 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;

稍微缩短一点算法。