freeCodeCamp/guide/spanish/certifications/javascript-algorithms-and-d.../debugging/catch-off-by-one-errors-whe.../index.md

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:

Recursos