Erro de ausência de flag em função em JavaScript
Suponha que queremos criar uma função que receberá como parâmetro um dígito e um número, e verificará se o dígito especificado está presente no número:
function func(needle, num) {
// o código estará aqui
}
É assim que usaremos nossa função:
console.log(func('3', '12345')); // exibirá true
Um certo programador escreveu a solução para este problema:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Esta solução, no entanto, funciona incorretamente.
O problema é que no loop há uma condição,
na qual na primeira iteração
será executado ou um return,
ou o outro, realizando assim
a saída tanto do loop quanto da função.
Vamos reescrever nosso código da forma correta, usando flags implícitos em funções:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}