გენერატორები JavaScript-ში

არსებობს სპეციალური ფუნქციები, რომელთა დახმარებითაც შესაძლებელია საკუთარი იტერატორების შექმნა. ასეთ ფუნქციებს ეწოდება გენერატორები. ასეთი ფუნქციების სახელები უნდა იწყებოდეს ვარსკვლავით:

javascriptfunction *func() {
  
}

გენერატორების შიგნით გამოიყენება საკვანძო სიტყვა yield, რომელიც მიუთითებს იმაზე, თუ რა უნდა დააბრუნოს იტერატორმა შემდეგი გამოძახებისას. მაგალითისთვის მოდით გავაკეთოთ ისე, რომ პირველი გამოძახება დააბრუნოს 1, მეორე - 2, ხოლო მესამე - 3:

javascriptfunction *func() {
  yield 1;
  yield 2;
  yield 3;
}

გენერატორი თავისი შედეგის სახით აბრუნებს იტერატორს:

javascriptlet iter = func();

მოდით შევამოწმოთ ჩვენი იტერატორის მუშაობა:

javascriptconsole.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
Задание 1

შექმენით იტერატორი, რომლის ყოველი გამოძახება დააბრუნებს რიცხვებს 5-დან 1-მდე.