Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Coleções e loops

Tenho uma duvida referente ao index de arrays

[0,1,2,3] .length nos retornaria 4,

A posicao 0 nos retorna 0 e assim sucessivamente, mas por que devemos colocar -1 no fim, ao usar em loops para validar ?

Nao ficou tao claro ainda...

Temos 4 elementos ao todo, mas para o loop fazer sentido, ou seja alguma validação, o -1 nao removeria o ultimo index ?

7 respostas

Eduardo,

Cola o código que vc tá testando aqui!

for (posicaoDoTrAtual = 0; posicaoDoTrAtual <= trsPacientes.length - 1; posicaoDoTrAtual++)

trsPacientes.length
4
===================================
trsPacientes[0]
<tr class=​"paciente">​…​</tr>​
trsPacientes[1]
<tr class=​"paciente">​…​</tr>​
trsPacientes[2]
<tr class=​"paciente">​…​</tr>​
trsPacientes[3]
<tr class=​"paciente">​…​</tr>​
======================================

1. posicaoDoTrAtual[0] <= trsPacientes.length - 1 [3] = true
2. posicaoDoTrAtual[1] <= trsPacientes.length - 1 [3] = true
3; posicaoDoTrAtual[2] <= trsPacientes.length - 1 [3] = true
4. posicaoDoTrAtual[3] <= trsPacientes.length - 1 [3] = true
posicaoDoTrAtual[4] <= trsPacientes.length - 1 [3] = false // sai do loop

===================================================
E se nao tiver o -1

1. posicaoDoTrAtual[0] <= trsPacientes.length [4] = true
2. posicaoDoTrAtual[1] <= trsPacientes.length [4] = true
3. posicaoDoTrAtual[2] <= trsPacientes.length [4] = true
4. posicaoDoTrAtual[3] <= trsPacientes.length [4] = true
5. posicaoDoTrAtual[4] <= trsPacientes.length [4] = // estourou pois nao tem esse index 5 lá

Tenho entao que subtrai o length -1 para, o apontamento por posicaoAtual fazer sentido ?
solução!

Agora entendi.

Se seu array tem 4 posições, você precisa percorrê-lo de 0 a 3, certo?

Ou seja, seu for pode ser assim. Afinal, o length é 4, e vc precisa percorrer até 3:

for(var i = 0; i < array.length; i++)

Ou usando <=, com o -1:

for(var i = 0; i <= array.length - 1; i++)

Vc escolhe! Entendeu?

Mas qual o motivo do -1 ?

Ele iterar sobre o n-elementos do array é tranquilo

for(var i = 0; i < array.length; i++)

Mas -1 Seria por

for(var i = 0; i <= array.length - 1; i++)

4 º iteração ->> i[3] <= array[3] // ai na proxima iteração vai dar false e sai

Entendeu então? :)

Ah é isso ?

ehuehuehueheuheuh

:D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software