Skip to content
    Simple Iterator@alamansky
    index.js
    Config files
    .replit
    replit.nix
    // iterable object
    const fiveRandomNums = {
    [Symbol.iterator]: function() {
    let count = 0;
    const iterator = {
    next: function() {
    count += 1;
    return {
    done: count > 5,
    value: Math.floor(Math.random() * 5)
    }
    }
    }
    return iterator;
    }
    };


    console.log('iterator invoked manually:');
    //assign iterator reference to its own variable
    const iterator = fiveRandomNums[Symbol.iterator]();
    // invoke next method imperatively (manually)
    console.log(iterator.next());
    console.log(iterator.next());
    console.log(iterator.next());
    console.log(iterator.next());
    console.log(iterator.next());
    console.log(iterator.next());


    console.log('\niterator invoked through for/of loop:');
    // invoke next method declaratively (programatically)
    for (let eachNum of fiveRandomNums) {
    console.log(eachNum);
    }


    console.log('\niterator invoked through spread operator:');
    // use with spread operator
    console.log([...fiveRandomNums]);