Функция JavaScript, похожая на Python range()

Есть ли в JavaScript функция, похожая на range()?

Я думаю, что должен быть лучший способ, чем писать следующие строки каждый раз:

array = new Array();
for (i = 0; i < specified_len; i++) {
    array[i] = i;
}
75
задан Mark Amery 24 February 2015 в 23:25
поделиться

2 ответа

Для принятия Вас нужен простой диапазон с одноэтапным:

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)];
}

относятся к здесь для больше.

0
ответ дан 24 November 2019 в 11:24
поделиться

там функция в 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]
0
ответ дан 24 November 2019 в 11:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: