Repeated withdrawal

0

I have the following code:

  var e = Array (10,20,30,40, 50);

  for (i = 0; i <= 50; i++) {

    for (j = 0; j < e.length; j++) {

      if (i == e[j]) document.write ("O numero escolhido é: " + i + "<br />");
      else document.write ("O numero NÃO escolhido é: " + i + "<br />");

    }   

  }

The intent here is to list this way:

O numero NÃO escolhido é: 0
O numero NÃO escolhido é: 1
O numero NÃO escolhido é: 2
O numero NÃO escolhido é: 3
O numero NÃO escolhido é: 4
O numero NÃO escolhido é: 5
O numero NÃO escolhido é: 6
O numero NÃO escolhido é: 7
O numero NÃO escolhido é: 8
O numero NÃO escolhido é: 9
O numero escolhido é: 10

....


O numero NÃO escolhido é: 11
...
O numero NÃO escolhido é: 19
O numero escolhido é: 20
...

It turns out that what is happening is:

O numero NÃO escolhido é: 0
O numero NÃO escolhido é: 0
O numero NÃO escolhido é: 0
O numero NÃO escolhido é: 0
O numero NÃO escolhido é: 0
O numero NÃO escolhido é: 1
O numero NÃO escolhido é: 1
O numero NÃO escolhido é: 1
O numero NÃO escolhido é: 1
O numero NÃO escolhido é: 1
O numero NÃO escolhido é: 2
O numero NÃO escolhido é: 2
O numero NÃO escolhido é: 2
O numero NÃO escolhido é: 2
O numero NÃO escolhido é: 2
O numero NÃO escolhido é: 3
O numero NÃO escolhido é: 3
O numero NÃO escolhido é: 3
O numero NÃO escolhido é: 3
O numero NÃO escolhido é: 3
O numero NÃO escolhido é: 4
O numero NÃO escolhido é: 4
O numero NÃO escolhido é: 4
O numero NÃO escolhido é: 4
O numero NÃO escolhido é: 4
O numero NÃO escolhido é: 5
O numero NÃO escolhido é: 5
O numero NÃO escolhido é: 5
O numero NÃO escolhido é: 5
O numero NÃO escolhido é: 5
O numero NÃO escolhido é: 6
O numero NÃO escolhido é: 6
O numero NÃO escolhido é: 6
O numero NÃO escolhido é: 6
O numero NÃO escolhido é: 6
O numero NÃO escolhido é: 7
O numero NÃO escolhido é: 7
O numero NÃO escolhido é: 7
O numero NÃO escolhido é: 7
O numero NÃO escolhido é: 7
O numero NÃO escolhido é: 8
O numero NÃO escolhido é: 8
O numero NÃO escolhido é: 8
O numero NÃO escolhido é: 8
O numero NÃO escolhido é: 8
O numero NÃO escolhido é: 9
O numero NÃO escolhido é: 9
O numero NÃO escolhido é: 9
O numero NÃO escolhido é: 9
O numero NÃO escolhido é: 9
O numero escolhido é: 10
O numero NÃO escolhido é: 10
O numero NÃO escolhido é: 10
O numero NÃO escolhido é: 10
O numero NÃO escolhido é: 10
O numero NÃO escolhido é: 11
O numero NÃO escolhido é: 11
O numero NÃO escolhido é: 11
O numero NÃO escolhido é: 11
O numero NÃO escolhido é: 11
O numero NÃO escolhido é: 12
O numero NÃO escolhido é: 12
O numero NÃO escolhido é: 12
O numero NÃO escolhido é: 12
O numero NÃO escolhido é: 12
O numero NÃO escolhido é: 13
O numero NÃO escolhido é: 13
O numero NÃO escolhido é: 13
O numero NÃO escolhido é: 13
O numero NÃO escolhido é: 13
O numero NÃO escolhido é: 14
O numero NÃO escolhido é: 14
O numero NÃO escolhido é: 14
O numero NÃO escolhido é: 14
O numero NÃO escolhido é: 14
O numero NÃO escolhido é: 15
O numero NÃO escolhido é: 15
O numero NÃO escolhido é: 15
O numero NÃO escolhido é: 15
O numero NÃO escolhido é: 15
O numero NÃO escolhido é: 16
O numero NÃO escolhido é: 16
O numero NÃO escolhido é: 16
O numero NÃO escolhido é: 16
O numero NÃO escolhido é: 16
O numero NÃO escolhido é: 17
O numero NÃO escolhido é: 17
O numero NÃO escolhido é: 17
O numero NÃO escolhido é: 17
O numero NÃO escolhido é: 17
O numero NÃO escolhido é: 18
O numero NÃO escolhido é: 18
O numero NÃO escolhido é: 18
O numero NÃO escolhido é: 18
O numero NÃO escolhido é: 18
O numero NÃO escolhido é: 19
O numero NÃO escolhido é: 19
O numero NÃO escolhido é: 19
O numero NÃO escolhido é: 19
O numero NÃO escolhido é: 19
O numero NÃO escolhido é: 20
O numero escolhido é: 20
O numero NÃO escolhido é: 20
O numero NÃO escolhido é: 20
O numero NÃO escolhido é: 20
O numero NÃO escolhido é: 21
O numero NÃO escolhido é: 21
O numero NÃO escolhido é: 21
O numero NÃO escolhido é: 21
O numero NÃO escolhido é: 21
O numero NÃO escolhido é: 22
O numero NÃO escolhido é: 22
O numero NÃO escolhido é: 22
O numero NÃO escolhido é: 22
O numero NÃO escolhido é: 22
O numero NÃO escolhido é: 23
O numero NÃO escolhido é: 23
O numero NÃO escolhido é: 23
O numero NÃO escolhido é: 23
O numero NÃO escolhido é: 23
O numero NÃO escolhido é: 24
O numero NÃO escolhido é: 24
O numero NÃO escolhido é: 24
O numero NÃO escolhido é: 24
O numero NÃO escolhido é: 24
O numero NÃO escolhido é: 25
O numero NÃO escolhido é: 25
O numero NÃO escolhido é: 25
O numero NÃO escolhido é: 25
O numero NÃO escolhido é: 25
O numero NÃO escolhido é: 26
O numero NÃO escolhido é: 26
O numero NÃO escolhido é: 26
O numero NÃO escolhido é: 26
O numero NÃO escolhido é: 26
O numero NÃO escolhido é: 27
O numero NÃO escolhido é: 27
O numero NÃO escolhido é: 27
O numero NÃO escolhido é: 27
O numero NÃO escolhido é: 27
O numero NÃO escolhido é: 28
O numero NÃO escolhido é: 28
O numero NÃO escolhido é: 28
O numero NÃO escolhido é: 28
O numero NÃO escolhido é: 28
O numero NÃO escolhido é: 29
O numero NÃO escolhido é: 29
O numero NÃO escolhido é: 29
O numero NÃO escolhido é: 29
O numero NÃO escolhido é: 29
O numero NÃO escolhido é: 30
O numero NÃO escolhido é: 30
O numero escolhido é: 30
O numero NÃO escolhido é: 30
O numero NÃO escolhido é: 30
O numero NÃO escolhido é: 31
O numero NÃO escolhido é: 31
O numero NÃO escolhido é: 31
O numero NÃO escolhido é: 31
O numero NÃO escolhido é: 31
O numero NÃO escolhido é: 32
O numero NÃO escolhido é: 32
O numero NÃO escolhido é: 32
O numero NÃO escolhido é: 32
O numero NÃO escolhido é: 32
O numero NÃO escolhido é: 33
O numero NÃO escolhido é: 33
O numero NÃO escolhido é: 33
O numero NÃO escolhido é: 33
O numero NÃO escolhido é: 33
O numero NÃO escolhido é: 34
O numero NÃO escolhido é: 34
O numero NÃO escolhido é: 34
O numero NÃO escolhido é: 34
O numero NÃO escolhido é: 34
O numero NÃO escolhido é: 35
O numero NÃO escolhido é: 35
O numero NÃO escolhido é: 35
O numero NÃO escolhido é: 35
O numero NÃO escolhido é: 35
O numero NÃO escolhido é: 36
O numero NÃO escolhido é: 36
O numero NÃO escolhido é: 36
O numero NÃO escolhido é: 36
O numero NÃO escolhido é: 36
O numero NÃO escolhido é: 37
O numero NÃO escolhido é: 37
O numero NÃO escolhido é: 37
O numero NÃO escolhido é: 37
O numero NÃO escolhido é: 37
O numero NÃO escolhido é: 38
O numero NÃO escolhido é: 38
O numero NÃO escolhido é: 38
O numero NÃO escolhido é: 38
O numero NÃO escolhido é: 38
O numero NÃO escolhido é: 39
O numero NÃO escolhido é: 39
O numero NÃO escolhido é: 39
O numero NÃO escolhido é: 39
O numero NÃO escolhido é: 39
O numero NÃO escolhido é: 40
O numero NÃO escolhido é: 40
O numero NÃO escolhido é: 40
O numero escolhido é: 40
O numero NÃO escolhido é: 40
O numero NÃO escolhido é: 41
O numero NÃO escolhido é: 41
O numero NÃO escolhido é: 41
O numero NÃO escolhido é: 41
O numero NÃO escolhido é: 41
O numero NÃO escolhido é: 42
O numero NÃO escolhido é: 42
O numero NÃO escolhido é: 42
O numero NÃO escolhido é: 42
O numero NÃO escolhido é: 42
O numero NÃO escolhido é: 43
O numero NÃO escolhido é: 43
O numero NÃO escolhido é: 43
O numero NÃO escolhido é: 43
O numero NÃO escolhido é: 43
O numero NÃO escolhido é: 44
O numero NÃO escolhido é: 44
O numero NÃO escolhido é: 44
O numero NÃO escolhido é: 44
O numero NÃO escolhido é: 44
O numero NÃO escolhido é: 45
O numero NÃO escolhido é: 45
O numero NÃO escolhido é: 45
O numero NÃO escolhido é: 45
O numero NÃO escolhido é: 45
O numero NÃO escolhido é: 46
O numero NÃO escolhido é: 46
O numero NÃO escolhido é: 46
O numero NÃO escolhido é: 46
O numero NÃO escolhido é: 46
O numero NÃO escolhido é: 47
O numero NÃO escolhido é: 47
O numero NÃO escolhido é: 47
O numero NÃO escolhido é: 47
O numero NÃO escolhido é: 47
O numero NÃO escolhido é: 48
O numero NÃO escolhido é: 48
O numero NÃO escolhido é: 48
O numero NÃO escolhido é: 48
O numero NÃO escolhido é: 48
O numero NÃO escolhido é: 49
O numero NÃO escolhido é: 49
O numero NÃO escolhido é: 49
O numero NÃO escolhido é: 49
O numero NÃO escolhido é: 49
O numero NÃO escolhido é: 50
O numero NÃO escolhido é: 50
O numero NÃO escolhido é: 50
O numero NÃO escolhido é: 50
O numero escolhido é: 50

How would you work around this problem?

    
asked by anonymous 18.10.2018 / 12:39

2 answers

3
The algorithm needs to scan the second loop to know if at least one fits, can not print directly, the purpose of the second loop is just to know if it has one element inside the other or not, at the moment it thinks it should close the loop and then decide whether to print. If sweeping the entire loop should not print. This can be done with the use of flags , but I find that bad and doing in a separate function is better, so that's how I did it. If you do it in a generic way you can use this function everywhere.

function testa(e, i) {
    for (var j = 0; j < e.length; j++) if (e[j] == i) return true;
    return false;
}
var e = [10, 20, 30, 40, 50];
for (var i = 0; i <= 50; i++) {
    if (testa(e, i)) document.write("O numero escolhido é: " + i + "<br />");
    else document.write("O numero NÃO escolhido é: " + i + "<br />");
}
    
18.10.2018 / 12:54
3

As commented out, you can override the internal loopback logic by invoking the method includes of array :

const numbers = [10, 20, 30, 40, 50];

for (let i = 0; i <= 50; i++) {
  let no = numbers.includes(i) ? '' : 'NÃO';
  console.log('O número ${no} escolhido foi: ${i}');
}
    
18.10.2018 / 13:17