JavaScript 函数类似于 Python range()
2022-08-30 04:25:10
JavaScript中是否有类似于Python的函数?range()
我认为应该有一种比每次都写以下行更好的方法:
array = new Array();
for (i = 0; i < specified_len; i++) {
array[i] = i;
}
JavaScript中是否有类似于Python的函数?range()
我认为应该有一种比每次都写以下行更好的方法:
array = new Array();
for (i = 0; i < specified_len; i++) {
array[i] = i;
}
对于 ES6 中非常简单的范围:
let range = n => Array.from(Array(n).keys())
从bigOmega的评论中,可以使用Spread语法缩短:
let range = n => [...Array(n).keys()]
不,没有,但你可以做一个。
range()
试图模拟它在Python中的工作方式,我会创建类似于这样的函数:
function range(start, stop, step) {
if (typeof stop == 'undefined') {
// one param defined
stop = start;
start = 0;
}
if (typeof step == 'undefined') {
step = 1;
}
if ((step > 0 && start >= stop) || (step < 0 && start <= stop)) {
return [];
}
var result = [];
for (var i = start; step > 0 ? i < stop : i > stop; i += step) {
result.push(i);
}
return result;
};
请参阅此 jsfiddle 以获取证明。
range()
它的工作方式如下:
range(4)
返回[0, 1, 2, 3]
range(3,6)
返回[3, 4, 5]
range(0,10,2)
返回[0, 2, 4, 6, 8]
range(10,0,-1)
返回[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
range(8,2,-2)
返回[8, 6, 4]
range(8,2)
返回[]
range(8,2,2)
返回[]
range(1,5,-1)
返回[]
range(1,5,-2)
返回[]
它的Python对应物的工作方式完全相同(至少在上述情况下):
>>> range(4)
[0, 1, 2, 3]
>>> range(3,6)
[3, 4, 5]
>>> range(0,10,2)
[0, 2, 4, 6, 8]
>>> range(10,0,-1)
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> range(8,2,-2)
[8, 6, 4]
>>> range(8,2)
[]
>>> range(8,2,2)
[]
>>> range(1,5,-1)
[]
>>> range(1,5,-2)
[]
因此,如果您需要一个函数来与Python类似地工作,则可以使用上面提到的解决方案。range()