Withdraw repeated

Asked

Viewed 75 times

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 intention here is to list like this:

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
...

Turns out what’s 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

What would it be like to get around this problem?

  • Search for Array.prototype.includes, it will replace your internal repeat loop.

  • thank you, that’s right

2 answers

4

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 only to know if there is an element inside the other or not, at the moment it thinks it should close the loop and then decide if it will print. If sweeping the whole loop should not print. This can be done with the use of flags, But I think it’s bad and doing it 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 />");
}

I put in the Github for future reference.

3

As commented, you can replace the logic of the internal repetition loop by the method call 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}`);
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.