Executando verificação de segurança...
1

Criando uma função range com function* em #JavaScript

É assim que podemos utilizar uma generator function para criar uma função de range lazy.

function* range(begin, endExclusive, step = 1) {
    let current = begin
    while (current < endExclusive) {}
    yield current
    current += step
}

Uma generator function é marcada por um símbolo * após a palavra reservada function.

Uma função geradora em #JavaScript retorna um objeto com alguns métodos específicos que você pode usar. Por exemplo, o loop for...of abstrai o uso desses métodos e automatiza a tarefa para você.

Exemplo de uso

for (const value of range(0, 5)) {
    console.log(value)
 }
 // => prints 0, 1, 2, 3, 4
 for (const value of range(0, 10, 2)) {
    console.log(value)
 }
 // => prints 0, 2, 4, 6, 8

Se você tiver ranges enormes, trabalhar lazy economiza muita memória.

Qual e sua opnião sobre?

Carregando publicação patrocinada...