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

Return only the values if not inside the array in for loop

This array contains 1,5,

let numberArray = [1,5];

I’m trying to print numbers from 1 to 280 except for the values inside the numberArray,

 for (let i = 1; i < 281; i++) {
    numberArray.forEach((number) => {
      if (number != i) {
        console.log(i);
      }
    });
  }

I’m expecting the result to be 2,3,4,6,7...280 without printing 1 and 5 in this case. But I get like this,

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

enter image description here

It prints 2 times each number except 1 and 5. I want to completely omit the values inside the numberArray and print the other values. Really appreciate it if somebody could point me to the bug. Thanks.

>Solution :

It isn’t a bug, your code is doing exactly what you are telling it too.
You have your for loop which happens 280 times and then you have a forEach loop inside that which is happening twice every time the loop goes around. So the Foreach loop is actually happening. 558 times.

You can just use the .includes method to check i doesn’t exist within the numberArray.

 for (let i = 1; i < 281; i++) {
    if(!numberArray.includes(i)){
       console.log(i);
    }
  }
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