10 of 17 menu

Błąd braku flagi w funkcji w JavaScript

Załóżmy, że chcemy stworzyć funkcję, która jako parametr będzie przyjmować cyfrę i liczbę, oraz sprawdzać, czy podana cyfra znajduje się w liczbie:

function func(needle, num) { // tutaj będzie kod }

Oto jak będziemy używać naszej funkcji:

console.log(func('3', '12345')); // wypisze true

Pewien programista napisał rozwiązanie tego zadania:

function func(needle, num) { for (let digit of num) { if (digit === needle) { return true; } else { return false; } } }

To rozwiązanie jednak działa niepoprawnie. Chodzi o to, że w pętli napisano warunek, w którym już w pierwszej iteracji wykona się albo jeden return, albo drugi, tym samym realizując wyjście zarówno z pętli, jak i z funkcji.

Przepiszmy nasz kod w poprawny sposób, używając niejawnych flag w funkcjach:

function func(needle, num) { for (let digit of num) { if (digit === needle) { return true; } } return false; }
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć