Грешка отсутство на знаме во функција во JavaScript
Да речеме дека сакаме да направиме функција, која како параметар ќе прима цифра и број, и ќе проверува, дали посочената цифра е во бројот:
function func(needle, num) {
// овде ќе биде кодот
}
Еве како ќе ја користиме нашата функција:
console.log(func('3', '12345')); // ќе испечати true
Некој програмер напиша решение на оваа задача:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
} else {
return false;
}
}
}
Ова решение, сепак, не работи правилно.
Работата е што во циклусот е напишана условна конструкција,
во која во првата итерација
ќе се изврши или еден return,
или вториот, со што ќе се излезе
и од циклусот и од функцијата.
Да го преработиме нашиот код на правилен начин, користејќи имплицитни знамиња во функции:
function func(needle, num) {
for (let digit of num) {
if (digit === needle) {
return true;
}
}
return false;
}