在 JavaScript 1.7 中,您可以使用数组推导来完成此任务:
var myArray = [Math.random() for each (i in range(0, 20))];
但是,在 ES5.1 中,您可以使用Array
构造函数生成任意长度的数组,然后将其映射为随机数。唯一的缺点是它map()
不适用于未初始化的值,因此我首先使用join
and生成一个空字符串数组split
:
var myArray = new Array(20).join(" ").split(" ").map(Math.random);
丑陋,但很短。在 JavaScript中创建范围的一个可能更好(但不太容易理解)的想法- 奇怪的语法:
var myArray = Array.apply(null, {length: 20}).map(Math.random);
i
从@FelixKlings 评论开始,人们也可以在没有循环变量的情况下使用这个单行代码:
for (var myArray=[]; myArray.push(Math.random()) < 20;);
// much better:
for (var myArray=[]; myArray.length < 20;) myArray.push(Math.random());