10 of 17 menu

Virhe lipun puuttuminen funktiossa JavaScriptissä

Oletetaan, että haluamme tehdä funktion, jonka parametrina on numero ja luku, ja tarkistaa, onko annettu numero luvussa:

function func(needle, num) { // tähän tulee koodi }

Näin käytämme funktiotamme:

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

Eräs ohjelmoija kirjoitti ratkaisun tähän tehtävään:

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

Tämä ratkaisu ei kuitenkaan toimi oikein. Kyse on siitä, että silmukassa on ehto, jossa ensimmäisellä iteraatiolla suoritetaan joko yksi return, tai toinen, ja näin tapahtuu poistuminen sekä silmukasta että funktiosta.

Kirjoitetaan koodimme uudelleen oikealla tavalla käyttämällä implisiittisiä lippuja funktioissa:

function func(needle, num) { for (let digit of num) { if (digit === needle) { return true; } } return false; }
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää