Kesalahan Tidak Ada Flag dalam Fungsi di JavaScript
Misalkan kita ingin membuat sebuah fungsi, yang parameternya akan menerima sebuah digit dan sebuah angka, dan memeriksa apakah digit yang ditentukan ada dalam angka tersebut:
function func(needle, num) {
// kode akan ada di sini
}
Berikut adalah cara kita akan menggunakan fungsi kita:
console.log(func('3', '12345')); // akan menampilkan true
Seorang programmer menulis solusi untuk masalah ini:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Namun, solusi ini bekerja tidak benar.
Masalahnya adalah dalam loop ditulis sebuah kondisi,
di mana pada iterasi pertama
akan dieksekusi salah satu return,
atau yang lainnya, sehingga melakukan
keluar dari loop, dan juga dari fungsi.
Mari tulis ulang kode kita dengan cara yang benar, menggunakan flag implisit dalam fungsi:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}