Нет , его нет, но вы можете сделать один .
Реализация JavaScript Python's 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()
в JavaScript и 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(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)
[]
Так что если вам нужна функция, работающая аналогично range()
в Python, вы можете использовать вышеупомянутое решение.