Rozpoczynamy lekcje o generatorach. Poznajemy ich najłatwiejsze zastosowania pisząc bardzo proste funkcje range.

Funkcja range (jak w PHP):

function* range(from, to){

    let i = from;
    while(i <= to)
        yield i++;
}

for(let num of range(1,3))
    console.log(num);

//1
//2
//3

Funkcja range jak w Pythonie:

function* pyRange(from, to){

    let i = from;
    while(i < to)
        yield i++;
}

for(let num of pyRange(1,4))
    console.log(num);

//1
//2
//3

Funkcja charRange (do wyrzucania liter/znaków z określonego zakresu):

function* charRange(charStart, charEnd){

    let from = charStart.charCodeAt(0);
    let to = charEnd.charCodeAt(0);

    let i = from;

    while(i <= to)
        yield String.fromCharCode(i++);

}

for(let letter of charRange("A", "C"))
    console.log(letter);

//A
//B
//C

Więcej o generatorach w następnych lekcjach.