我有两个号码,min
和 max
,并且我想创建一个包含它们之间的所有数字的数组(包括 min
和 max
)。
最明显的方法是使用 for
为此循环,push
单个值到数组中。然而,这似乎是一种非常幼稚的方法,即它是命令式编程。
现在我正在考虑如何以更实用的方式创建这样的数组。基本上,例如 reduce
的反面功能:不是将数组简化为一个数字,而是从两个数字构建一个数组。
我怎么能这样做?解决此问题的功能方法是什么?
基本上,我在想诸如 10..20
之类的东西。在其他一些语言中。 JavaScript 中最优雅的等价物是什么?
最佳答案
灵感来自 this
var min = 3, max = 10;
var x = Array.apply(null, {length: max + 1}).map(Number.call, Number).slice(min);
console.log(x);
// [ 3, 4, 5, 6, 7, 8, 9, 10 ]
最佳版本
var min = 3, max = 10;
var x = Array.apply(null, {length: max + 1 - min}).map(function(_, idx) {
return idx + min;
});
console.log(x);
// [ 3, 4, 5, 6, 7, 8, 9, 10 ]
关于javascript - 创建一个包含从 min 到 max 的所有数字的数组,无需循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22476258/