⊗jsSpOtEI 273 of 294 menu

Nenaudingu ciklo praėjimų optimizavimas JavaScript

Toliau pateiktame kode kažkoks programuotojas patikrina, ar masyve yra skaičius 3:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let exists = false; for (let elem of arr) { if (elem === 3) { exists = true; } } console.log(exists);

Kas negerai su jo sprendimu? Atrodo, kad cikle neatliekama jokių papildomų operacijų. Tačiau problema yra ta, kad po to, kai nustatoma, kad masyve yra skaičius 3, ciklas vis tiek sukasi iki masyvo pabaigos.

Neracionaliausia bus, jei skaičius 3 bus rastas kažkur masyvo pradžioje, o pats masyvas turės, tarkime, 1000 elementų. Tai reikš tūkstantį nenaudingų papildomų ciklo iteracijų! Neoptimalu.

Optimizuokime kodą, laiku sustabdydami ciklą:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let exists = false; for (let elem of arr) { if (elem === 3) { exists = true; break; } } console.log(exists);

Toliau pateiktas kodas skaičiuoja, kiek masyvo elementų reikia sudėti, kad suma taptų didesnė už 10. Atlikite optimizavimą:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let sum = 0; let i = 1; for (let elem of arr) { sum += elem; if (sum <= 10) { i++; } } console.log(i);

Toliau pateiktas kodas išveda lyginius skaičius iš nurodyto intervalo. Atlikite optimizavimą:

for (let i = 0; i <= 100; i++) { if (i % 2 === 0) { console.log(i); } }

Toliau pateiktas kodas išveda skaičius, kurie dalijasi iš 2 ir iš 3 vienu metu. Atlikite optimizavimą:

for (let i = 0; i <= 100; i++) { if (i % 2 === 0 && i % 3 === 0) { console.log(i); } }

Toliau pateiktas kodas ieško visų penktadienių, 13-os dienos, einamaisiais metais. Atlikite optimizavimą:

for (let i = 0; i <= 11; i++) { let curr = new Date; let last = new Date(curr.getFullYear(), i + 1, 0).getDate(); for (let j = 1; j <= last; j++) { let date = new Date(curr.getFullYear(), i, j); if (date.getDate() === 13 && date.getDay() === 5) { console.log(date); } } }
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti