Error de falta de bandera en una función en JavaScript
Supongamos que queremos crear una función que tome un dígito y un número como parámetros, y verifique si el dígito dado está presente en el número:
function func(needle, num) {
// aquí irá el código
}
Así es como usaremos nuestra función:
console.log(func('3', '12345')); // mostrará true
Un programador escribió la solución a este problema:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Sin embargo, esta solución no funciona correctamente.
El problema es que en el ciclo se escribió una condición,
en la cual, en la primera iteración,
se ejecutará uno u otro return,
realizando así una salida tanto del ciclo
como de la función.
Reescribamos nuestro código de forma correcta, utilizando banderas implícitas en funciones:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}