将数字转换为数组而无需for循环JavaScript

时间:2018-09-11 16:54:28

标签: javascript arrays

如何不进行 for循环而将number转换为array呢?

类似这样的东西:

var days = 30;
var days = days.toArray(); // Output - [1, 2, 3, 4, 5, 6, 7, 8, 9, ...]

我目前正在做的事情是

var days = 30;

var days = 30;
var array = [];

for(var i = 1;i <= 30;i++) {
  array.push(i);
}

console.log(array);

2 个答案:

答案 0 :(得分:3)

Array.from()

  

Array.from()有一个可选参数mapFn,它使您可以对正在创建的数组(或子类对象)的每个元素执行一个map函数。更清楚的是,Array.from(obj, mapFn, thisArg)Array.from(obj).map(mapFn, thisArg)的结果相同,只是它不会创建中间数组。

通过传递一个对象,其长度属性作为第一个参数,并将map函数作为第二个参数,来尝试Array.from()

var days = 30;
var days = Array.from({length: days}, (v, i) => i+1);
console.log(days)

答案 1 :(得分:1)

您可以使用传播语法。

参考文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

array = [...Array(30).keys()]
console.log(array);