在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本机是否有内置的功能?如果没有,我将如何实施?
当前回答
(from, to) => [...Array(to - from)].map((_,i)=> i + from)
其他回答
Javascript提供了一个从给定值创建和填充数组的函数,接收容器数组和映射函数作为参数:
让arr=数组来源(SOURCE_Array,MAP_FUNCTION);
由于MAP_FUNCTION提供了迭代的值和索引,因此可以创建一个空数组(SOURCE_array)并使用索引填充它,如下所示(supposing 10是您所需的长度):
let arr=Array.from(数组(10),(n,索引)=>索引);
输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].
这是我的2美分:
function range(start, end) {
return Array.apply(0, Array(end - 1))
.map((element, index) => index + start);
}
好的,在JavaScript中,我们没有像PHP那样的range()函数,所以我们需要创建一个非常简单的函数
对于数字:
function numberRange (start, end) {
return new Array(end - start).fill().map((d, i) => i + start);
}
并将其称为:
numberRange(5, 10); //[5, 6, 7, 8, 9]
对于字母:
function alphabetRange (start, end) {
return new Array(end.charCodeAt(0) - start.charCodeAt(0)).fill().map((d, i) => String.fromCharCode(i + start.charCodeAt(0)));
}
并将其称为:
alphabetRange('c', 'h'); //["c", "d", "e", "f", "g"]
我会这样编码:
function range(start, end) {
return Array(end-start).join(0).split(0).map(function(val, id) {return id+start});
}
range(-4,2);
// [-4,-3,-2,-1,0,1]
range(3,9);
// [3,4,5,6,7,8]
它的行为类似于Python范围:
>>> range(-4,2)
[-4, -3, -2, -1, 0, 1]
可以使用带有数组、for循环和Math.random()变量的函数来解决这个问题。for循环将数字推入数组,数组将包含您范围内的所有数字。然后Math.random()根据数组的长度随机选择一个。
function randNumInRange(min, max) {
var range = []
for(var count = min; count <= max; count++) {
range.push(count);
}
var randNum = Math.floor(Math.random() * range.length);
alert(range[randNum]);
}