関数 ジェネレータ関数 無限リスト、nextメソッド
入門JavaScriptプログラミング (JD Isaacks(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT3(関数)、LESSON 18(ジェネレータ関数)、18.5(練習問題)、Q18-1の解答を求めてみる。
コード
function* days(date = new Date()) {
while (true) {
yield date;
date = new Date(date.getTime());
date.setDate(date.getDate() + 1);
}
}
let genDate = days();
for (let index = 0; index < 5; index++) {
console.log(genDate.next());
}
入出力結果(Console)
% node sample1.js
{ value: 2021-06-15T7:16:10.135Z, done: false }
{ value: 2021-06-16T7:16:10.135Z, done: false }
{ value: 2021-06-17T7:16:10.135Z, done: false }
{ value: 2021-06-18T7:16:10.135Z, done: false }
{ value: 2021-06-19T7:16:10.135Z, done: false }
%