My goal is to capture the subsequent unique values within a factorial sequence upon clicking a button.
To achieve this, I have defined a factorialSeq() function along with a generator() function. The generator function takes the factorialSeq() as an argument. When the button is clicked, I successfully retrieve the first value in the sequence. However, all values in the sequence are returned correctly when logged to the console.
<button style="padding: 20px" id="nextBtn">Next</button>
<script>
let nextBtn = document.getElementById('nextBtn');
function generator(sequencer) {
const seqArgs = [...arguments];
seqArgs.shift();
const seq = sequencer(...seqArgs);
return {
next() {
return seq();
}
}
}
function factorialSeq() {
let currentNumber = 1;
let result;
return function factorialReturn() {
if (!result) {
result = 1;
return result;
}
result *= currentNumber;
currentNumber += 1;
return result;
}
}
nextBtn.addEventListener('click', function () {
var gen = generator(factorialSeq);
console.log(gen.next());
// console.log(gen.next());
// console.log(gen.next());
// console.log(gen.next());
});
</script>
I anticipate a different output each time I click the button (i.e., the next value in the sequence). It is pertinent to note that I do not wish to utilize the built-in generator function in JavaScript. Thank you!