Se me dificulta el condicional de los loops, en el sentido que no se cuando colocar arr.length o arr.length-1. Ese -1 siempre me anda jugando malas pasadas.
arr.length es la cantidad de elementos. PERO el último índice es arr.length - 1. ¿Por qué? Porque los arrays empiezan en índice 0. Si tienes: const arr = ["a", "b", "c"]; Entonces: arr.length → 3 (cantidad de elementos) Índices → 0, 1, 2 Último índice → 2 y 2 = 3 - 1
Caso 1: Quiero recorrer TODOS los elementos
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
¿Por qué < arr.length y no <=?
Porque si haces: i <= arr.length
En la última vuelta i sería 3
Y arr[3] no existe
Entonces:
✔ i < arr.length → correcto
i <= arr.length → error
Caso 2: Quiero acceder al último elemento
Aquí sí necesitas el -1: arr[arr.length - 1]
Porque el último índice es length - 1.
Truco Mental Hazte siempre esta pregunta:
- ¿Estoy comparando con una CANTIDAD o con un ÍNDICE?
- Si comparas con cantidad → usa < arr.length
-
Si quieres el último índice → usa arr.length - 1
para dudas de algoritmos, tienes el canal de #algorithms en Discord, con el crack de Marco!