As listas e o for começam contar a partir do 0, mas o length começa contar a partir do 0 ou 1?
for (let i = 0; i < imagemCarros.length; i = i + 1) {
image(imagemCarros[i], xCarros[i], yCarros[i], 50, 40);
}
As listas e o for começam contar a partir do 0, mas o length começa contar a partir do 0 ou 1?
for (let i = 0; i < imagemCarros.length; i = i + 1) {
image(imagemCarros[i], xCarros[i], yCarros[i], 50, 40);
}
Fala Rodrigo, tudo beleza?
A ideia seria a seguinte:
[a, b, c, d]
Na lista acima, temos quatro elementos, ou seja, seu tamanho é 4 (length).
Porém, as listas começam pela posição 0, ou seja, o último elemento é acessado pelo seu tamanho (4) - 1.
[a, b, c, d]
//posiçao 3 retorna o elemento d
Dito isso, podemos concluir que o length te retorna a quantidade de elementos de uma lista, porém para acessá-los de maneira correta, devemos levar em conta que a última posição é sempre uma unidade menor do seu length.
Se algo não ficou claro, basta perguntar.
Espero ter ajudado, abraços!
A lista tem 3 imagens de carros
imagemCarros = [imagemCarro1, imagemCarro2, imagemCarro3];
Em imagemCarros.length seria igual a 3
for (let i = 0; i < imagemCarros.length; i = i + 1) {
image(imagemCarros[i], xCarros[i], yCarros[i], 50, 40);
}
Então o length conta a partir do 1, por isso precisar usar < para o for contar de 0 até 2?
Vamos lá!
O length sempre será igual à quantidade de elementos que existem na sua lista, nesse seu caso:
length = 3
Para realizarmos um for, temos as seguintes 'configurações'
for (variavél auxiliar, condição de parada, incremento){}
Com isso definido, nossa intenção é iterar por todos os elementos dessa lista de 3 unidades.
for(let i = 0; i< lista.length; i++)
Nesse primeiro caso, utilizamos o operador <
para especificar que a condição de parada é o último momento em que o valor de i seja estritamente menor que o tamanho de sua lista.
Como sabemos que último elemento é sempre o tamanho da lista menos uma unidade, essa lógica funciona.
Caso fizessemos :
for(let i = 0; i<= lista.length; i++)
Nesse caso, o <=
permitirá que o valor de i** seja igual ao tamanho (length) da sua lista, e nós sabemos que não existem elementos na posição **3, logo isso resultará em um erro, algo como ArrayIndexOutOfBounds, já que tentamos acessar um elemento que não existe nessa lista.
Ficou mais claro? Qualquer coisa é só perguntar meu amigo!
Abraços!
Agora ficou mais claro, obrigado pela explicação.
Nada!
Sempre que precisar pode contar conosco.
Estou fechando o tópico, qualquer nova dúvida basta criar um novo.
Abraços!