在PHP中,您可以。。。
range(1, 3); // Array(1, 2, 3)
range("A", "C"); // Array("A", "B", "C")
也就是说,有一个函数可以通过传递上下限来获得一系列数字或字符。
JavaScript本机是否有内置的功能?如果没有,我将如何实施?
在PHP中,您可以。。。
range(1, 3); // Array(1, 2, 3)
range("A", "C"); // Array("A", "B", "C")
也就是说,有一个函数可以通过传递上下限来获得一系列数字或字符。
JavaScript本机是否有内置的功能?如果没有,我将如何实施?
当前回答
如果在Visual Studio代码中遇到以下错误:
类型“IterableIterator”不是数组类型或字符串类型。使用编译器选项“--downloadIteration”允许迭代迭代器。
而不是
[...Array(3).keys()]
你可以信赖
Array.from(Array(3).keys())
有关下层迭代的更多信息
其他回答
Array.from(Array((m - n + 1)), (v, i) => n + i); // m > n and both of them are integers.
如果我们输入类似[4,2]的内容,我们将得到[2,3,4]作为输出,我们可以使用它。
function createRange(array) {
var range = [];
var highest = array.reduce(function(a, b) {
return Math.max(a, b);
});
var lowest = array.reduce(function(a, b) {
return Math.min(a, b);
});
for (var i = lowest; i <= highest; i++) {
range.push(i);
}
return range;
}
只是在Elquent JavaScript中做了这样的练习
function range(start, end, step) {
var ar = [];
if (start < end) {
if (arguments.length == 2) step = 1;
for (var i = start; i <= end; i += step) {
ar.push(i);
}
}
else {
if (arguments.length == 2) step = -1;
for (var i = start; i >= end; i += step) {
ar.push(i);
}
}
return ar;
}
您可以使用lodash函数.range(10)https://lodash.com/docs#range
这可能不是最好的方法。但是如果你想在一行代码中得到一系列数字。例如10-50
Array(40).fill(undefined).map((n, i) => i + 10)
其中40是(结束-开始),10是开始。这应该返回[10,11,…,50]