Перед программистами часто встает задача генерирования некой последовательности чисел, например, чтобы затем пройтись по этой последовательности циклом. В PHP для этого есть специальная встроенная функция под названием range(min,max) ,которой можно передать минимальное и максимальное значение по которым она самостоя...

Функция range в JavaScript

Перед программистами часто встает задача генерирования некой последовательности чисел, например, чтобы затем пройтись по этой последовательности циклом. В PHP для этого есть специальная встроенная функция под названием range(min,max),которой можно передать минимальное и максимальное значение по которым она самостоятельно сгенерирует массив.

В JavaScript потребность в создании последовательностей чисел тоже есть, но нет встроенной функции range, как в PHP. Поэтому сегодня мы ее и напишем. Сразу скажу, что способов написания подобной функции в JavaScript множество, но я вам покажу наиболее простой и экономный, с точки зрения потребляемой памяти вариант. Итак, поехали...

// используем генераторы JavaScript

function* range(start, end) {
    for (let i = start; i <= end; i++) {
        yield i;
    }
}

// генерируем последовательность
range(0,10)

А теперь реализуем эту функцию несколько иначе, избавившись от цикла и используя рекурсию:

function* range(start, end) {
    yield start;
    
    // если начальное и конечное значение совпадают
    if (start === end) return;
    
    // рекурсивно вызываем функцию-генератор
    yield* range(start + 1, end);
}


// вызываем
[...range(0,10)]


// вывод
// Array(11) [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

Вот так просто можно реализовать функции из PHP в JavaScript.