Функция 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.
- 
					Создано 19.03.2020 12:32:25  
- 
					 Михаил Русаков Михаил Русаков
 
			 
			 
		 
				 
			 
				 
				 
				 
				
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.