Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задачка по JS (https://javascript.ru/forum/misc/61971-zadachka-po-js.html)

mr_kaznachey 18.03.2016 13:32

Задачка по JS
 
Как решить єту задачку?
Напиши функцию создания генератора sequence(start, step). Она при вызове возвращает другую функцию-генератор, которая при каждом вызове дает число на 1 больше, и так до бесконечности. Начальное число, с которого начинать отсчет, и шаг, задается при создании генератора. Шаг можно не указывать, тогда он будет равен одному. Начальное значение по умолчанию равно 0. Генераторов можно создать сколько угодно.

var generator = sequence(10, 3);
var generator2 = sequence(7, 1);

console.log(generator()); // 10
console.log(generator()); // 13

console.log(generator2()); // 7

console.log(generator()); // 16

console.log(generator2()); // 8

ruslan_mart 18.03.2016 13:42

function sequence(start, step) {
	start -= step;
	return function() {
		return start += step;
	}
}

mr_kaznachey 18.03.2016 13:46

Ето весь код?

рони 18.03.2016 14:11

Ruslan_xDD,
Цитата:

Сообщение от mr_kaznachey
Шаг можно не указывать, тогда он будет равен одному. Начальное значение по умолчанию равно 0.

а это условие ?

mr_kaznachey 18.03.2016 14:17

Цитата:

Сообщение от рони (Сообщение 411332)
Ruslan_xDD,

а это условие ?

Ну так мне дал преподаватель:cray:

mr_kaznachey 18.03.2016 14:17

Наскоко я понял всё это должго быть Замыканием

рони 18.03.2016 14:23

mr_kaznachey,
замыкание уже вам показали , осталось добавить условие.

ruslan_mart 18.03.2016 18:26

function sequence(start, step) {
	start = start || 0;
	step = step || 1;
	start -= step;
	return function() {
		return start += step;
	}
}

рони 18.03.2016 19:06

Ruslan_xDD,
:victory:


Часовой пояс GMT +3, время: 16:43.