我是 javascript 的新手。我之前正在解决一个问题,我需要一个包含数字 1 到 20 的数组。
我用以下方法做到了这一点:
var numberArray = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
问题:
我不禁认为这不是有效的(当然也不是可扩展的)。有没有办法创建一个自动填充 1 到 20 或 1 到 1000 之间的连续值的数组?
我是 javascript 的新手。我之前正在解决一个问题,我需要一个包含数字 1 到 20 的数组。
我用以下方法做到了这一点:
var numberArray = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
问题:
我不禁认为这不是有效的(当然也不是可扩展的)。有没有办法创建一个自动填充 1 到 20 或 1 到 1000 之间的连续值的数组?
这是一个单线:
var myArr = Array(20).join().split(',').map(function(a){return this.i++},{i:1});
或更短一点:
var myArr = (''+Array(20)).split(',').map(function(){return this[0]++;}, [1]);
两种方法都创建一个Array
包含 20 个空元素(即具有 value的元素undefined
)的空元素。在这样创建Array
的map
方法上不能应用1,因此join
(或字符串添加)和split
技巧将其转换为Array
知道它的方法。现在map
回调(参见 MDN 链接)只是为 的每个元素发送一个初始值({i:1}
或)的增量,然后包含从 1 到 20 的 20 个数值。[1]
Array
myArr
附录:ES20xx
[...Array(21).keys()].slice(1);
Array.map
=>另见...
你可以使用一个简单的循环来做你想做的事;
var numberArray = [];
for(var i = 1; i <= 20; i++){
numberArray.push(i);
}
console.log(numberArray);