Есть ли в JavaScript функция, похожая на range()
?
Я думаю, что должен быть лучший способ, чем писать следующие строки каждый раз:
array = new Array();
for (i = 0; i < specified_len; i++) {
array[i] = i;
}
Для принятия Вас нужен простой диапазон с одноэтапным:
let range = (start, end)=> {
if(start === end) return [start];
return [start, ...range(start + 1, end)];
}
еще
let range = (start, end, step)=> {
if(start === end) return [start];
return [start, ...range(start + step, end)];
}
относятся к здесь для больше.
там функция в JavaScript, подобном диапазону Python ()?
Все решения здесь относятся к диапазону Python 2 (вероятно, из-за примера кода, который Вы дали). Однако в Python 3, диапазон () метод возвращает итератор. JavaScript также имеет итераторы, и они - больше пространства, эффективного, чем генерация целого массива и хранение его в памяти.
, Таким образом, более точное представление функции Python 3 range(n)
Array(n).keys()
.
, Например:
for (let i of Array(n).keys()) {
console.log(i) // 0, 1, 2, 3, ..., n
}
Еще один пример (который был уже охвачен в других ответах). Преобразование итератора к массиву (ES6):
let ary = [...Array(n).keys()];
// ary = [0, 1, 2, 3, ..., n]