10 of 17 menu

Грешка липса на флаг във функция в 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; }
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне