Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Im trying to get each "onclick" event to repaet the function

im trying to get a diffrent values of the array and print them each time the user clicking the button.

`

<p id="demo" style="display: none"></p>
<button
  id="myB"
  onclick="loto()"
  style="background: #26a775; font-family: Monospace; border-radius: 15%"
>
  And The Numbers Are
</button>

<script>
  const lottery = [];
  function loto() {
    for (let i = 0; lottery.length < 7; i++) {
      let index = Math.floor(1 + Math.random() * 32);
      if (!lottery.includes(index)) {
        //if lottery not includes this specific index >>
        lottery.push(index);
      } //push the index
      demo.style.display = "block";
      demo.style.color = "#ff7300";
      demo.innerHTML = lottery;
    }
  }
  console.log(lottery);
</script>

`

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Declare lottery inside of the function so it refreshes. You’re looping to until lottery.length < 7. When you do this and you declare lottery[] outside of the function scope and push 7 values to it, the lottery[] will never trigger the for loop. Consider also moving the HTML and console.log(lottery) to outside of the loop so that they only update once as opposed to every iteration

<script>
  
  function loto() {
//now inside of function. each time loto() is called, a new array will be there.
    const lottery = [];
    for (let i = 0; lottery.length < 7; i++) {
      let index = Math.floor(1 + Math.random() * 32);
      if (!lottery.includes(index)) {
        //if lottery not includes this specific index >>
        lottery.push(index);
      } //push the index
    }
//now outside of loop//
    demo.style.display = "block";
    demo.style.color = "#ff7300";
    demo.innerHTML = lottery;
    console.log(lottery);
  }
</script>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading