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

Dúvida sobre Array

Inicia-se a contagem de elementos de um array de 0, certo? No nosso caso, seria 2.

Eu jurei que isso iria dar certo, porém não deu. Aqui chega a ficar i = 3, sendo que cores.length é 2, não entendi o motivo do i = 3. Aqui está repetindo o verde uma vez.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

function mudaCor() {

var cores = ['blue', 'red', 'green'];

if (i == cores.length){
i = 0;
} else {
i++;
}

console.log(i);
return false;
}
2 respostas
solução!

Boa noite!

Com relação a sua primeira pergunta, sim, a posição se inicia em 0

Mas, não confunda posição de array, com tamanho de array.

var cores = ['blue', 'red', 'green'];
[0] = 'blue'
[1] = 'red'
[2] = 'green'

Mas, quantas cores tem o array? tem 3 cores. Ou seja cores.length é igual a 3.

No teu código:

if (i == cores.length){
i = 0;
} else {
i++;
}

Se o i inicia com zero, ele irá até a posição 3 do array. Mas não existe posição 3. Então, duas possibilidades simples: 1)

if (i == (cores.length-1)){
i = 0;
} else {
i++;
}

2)

if (i+1 == cores.length)){
i = 0;
} else {
i++;
}

Bons estudos!

Poxa Thiago, muito obrigado, agora ficou muito mais claro.

Eu estava confundindo a posição com a quantidade mesmo.