Off by one errors
(a veces llamado OBOE) se recortan cuando intentas apuntar a un índice específico de una cadena o matriz (para dividir o acceder a un segmento), o cuando se recorren los índices de ellos. La indexación de JavaScript comienza en cero, no en uno, lo que significa que el último índice siempre es uno menos que la longitud del elemento. Si intenta acceder a un índice igual a la longitud, el programa puede arrojar un error de referencia de "índice fuera de rango" o imprimir undefined
. Cuando utiliza métodos de cadena o matriz que toman rangos de índice como argumentos, es útil leer la documentación y comprender si son inclusivos (el elemento en el índice dado es parte de lo que se devuelve) o no. Aquí hay algunos ejemplos de errores off por uno: let alphabet = "abcdefghijklmnopqrstuvwxyz";
let len = alphabet.length;
para (sea i = 0; i <= len; i ++) {
// repite demasiadas veces al final
console.log (alfabeto [i]);
}
para (sea j = 1; j <len; j ++) {
// repite demasiado pocas veces y pierde el primer carácter en el índice 0
console.log (alfabeto [j]);
}
para (sea k = 0; k <len; k ++) {
// Goldilocks aprueba - esto es justo
console.log (alfabeto [k]);
}