JS: Arrays
Teoría: Verificación de la existencia de valor
Al trabajar con arrays en JavaScript, es muy común encontrarse con un problema llamado desbordamiento de array. En palabras simples, esto sucede cuando intentamos acceder a una posición (índice) del array que no existe.
Acceder a un índice inexistent
⏬ Miremos con un ejemplo:
En JavaScript, cuando intentamos acceder a un índice fuera de los límites del array, el resultado es undefined.
JavaScript maneja este caso con más flexibilidad. No produce errores críticos, simplemente devuelve undefined. Esto parece inofensivo, pero no siempre es algo bueno...
⏬ Veamos más ejemplos:
Cuando queremos acceder a animals[5], el array no tiene un elemento en esa posición, así que devuelve undefined. Esto no genera un error, pero puede causar problemas si no lo manejamos bien.
¿Por qué el desbordamiento de arrays puede ser un problema?
En la mayoría de los casos, el desbordamiento sucede por error. Si intentas acceder a un índice que no existe en el array, probablemente hay un problema en la lógica de tu código.
¿Cómo evitar el desbordamiento?
✅ La solución más simple es asegurarnos de que el índice está dentro de los límites del array. Es decir, que esté entre 0 y array.length - 1.
Atención: En la condición, usamos < en lugar de <= porque los arrays en JavaScript tienen un índice desde 0 hasta length - 1.
Por ejemplo, si items.length es 3, entonces los índices válidos son 0, 1 y 2, pero NO 3.
Resumen
- El desbordamiento de array ocurre cuando intentamos acceder a un índice que no existe en el array.
- En JavaScript, esto no causa un error, simplemente devuelve
undefined. - Para evitar el desbordamiento, siempre verifica que el índice esté dentro del rango correcto (
0aarray.length - 1).
Incluso los programadores más experimentados pueden cometer este tipo de errores, así que no te preocupes si te pasa. Con práctica, identificarás y solucionarás estos problemas con facilidad.