2.3 KiB
title | localeTitle |
---|---|
Catch Off By One Errors When Using Indexing | Descubrir por uno errores al utilizar la indexación |
Descubrir por uno errores al utilizar la indexación
Lo esencial
Debido a la forma en que funcionan los índices de JavaScript, ¡los firstFive
cinco tienen cinco elementos pero están indexados de 0 a 4 !
console.log(len); // 5
console.log(firstFive[0]); // 1
/**/
console.log(firstFive[4]); // 5
console.log(firstFive[5]); // undefined
Eso debería darte lo suficiente para comprender los límites de los firstFive
. Dirige tu atención al bucle. ¿Qué hace? Puedes intentar depurarlo para averiguarlo!
Depuración
Te han dado este código:
for (let i = 1; i <= len; i++) {
console.log(firstFive[i]);
}
Para depurar este fragmento de código, use console.clear()
. ¿Cuál sería el mejor lugar para ello? La respuesta es justo antes de la declaración for
!
console.clear();
for (let i = 1; i <= len; i++) {
console.log(firstFive[i]);
}
Salida de consola:
Console was cleared.
2
3
4
5
undefined
Análisis
Examina la salida. En estas condiciones, el bucle primero imprime el elemento posicionado en 1 ... ¡que es 2! También intenta imprimir el elemento indexado en 5, que undefined
está undefined
.
Esto puede considerarse el punto de este desafío. Mantenga console.log()
y console.clear()
presentes. Te ayudarán a entender cómo funciona tu código.
Solución
La forma más sencilla de solucionar este problema es alterar las condiciones for (). Hago i
empezar a 0. También el bucle no debe ser ejecutado para i == 5. En otras palabras, la relación entre i
y len
debe ser false
cuando i == 5. Que se puede lograr mediante el uso de i < len
(Is 5 <len? false, y el bucle no se ejecutará!).
for (let i = 0; i < len; i++) {
¡Feliz codificación! :computadora: