1
resposta

Dúvida

Gente, pq quando chega no 9, o código não para?

<meta charset="UTF-8">

<script>

function mostra(frase) {

    document.write(frase);

}


function createPhoneNumber(numbers){

  var phoneNumber = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  var i = 0

  for(i = 0; i < phoneNumber.length; i++) {


    document.write(phoneNumber)

  }

}

var phone = createPhoneNumber(2);
mostra(phone);

se eu colocar uma condição if(i = 8) break; da undefined

1 resposta

Olá Gabriel, tudo bem?

Isso acontece porque dentro do for na função createPhoneNumber(numbers), você está passando o array inteiro dentro do document.write(phoneNumber)! O que queremos fazer aqui é imprimir apenas os elementos do array, portanto ao invés de passar a lista inteira de elementos, passamos apenas o elemento i:

for(i = 0; i < phoneNumber.length; i++) {
    document.write(phoneNumber[i]) <-- imprimindo apenas um elemento do array
}

Veja que como a função createPhoneNumber(numbers) já imprime os elementos por conta própria, não é necessário usar a função mostra() no final do código. Além de que a variável i está sendo declarada suas vezes no código, sendo que ela só é utilizada dentro do for, portanto podemos deixar sua primeira declaração de fora:

var phoneNumber = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
var i = 0; <-- pode tirar isso

for(i = 0; i < phoneNumber.length; i++) { <-- ja esta sendo declarada aqui dentro
    document.write(phoneNumber[i])
}

O mesmo ocorre com o parâmetro numbers na função createPhoneNumber(numbers). Embora ela esteja sendo declarada e até recebe o valor 2 posteriormente, ela nunca é usada dentro da função!

function createPhoneNumber(numbers) { <-- numbers nunca mais aparece
    var phoneNumber = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    var i = 0

    for(i = 0; i < phoneNumber.length; i++) {
        document.write(phoneNumber[i])
    }
}

Após aplicar essas mudanças, você verá esse resultado na tela:

0123456789

Como eu não sei exatamente qual são as condições que você quer atingir com esse programa, não sei se serei capaz de ajudar muito.

Se ficou alguma dúvida é só avisar, estamos à disposição!

Abraços e bons estudos!!