⊗jsSpOtLO 272 of 294 menu

ციკლური ოპერაციების ოპტიმიზაცია JavaScript-ში

ძალიან მსუბუქმა ოპერაციამ, რომელიც მრავალჯერ მეორდება ციკლში, შეიძლება ბევრი რესურსი წაუშვას.

მოდით შევხედოთ მაგალითს. დავუშვათ, ჩვენ გვაქვს მოცემული გარკვეული მასივი:

let arr = [1, 2, 3, 4, 5, 6];

მოდით ვიპოვოთ ამ მასივის ელემენტების საშუალო. ამისათვის საჭიროა ვიპოვოთ ელემენტების ჯამი და გავყოთ იგი მათ რაოდენობაზე. დავუშვათ, რომ უკვე ვინმე პროგრამისტმა მოაგვარა ეს ამოცანა შემდეგნაირად:

let avg = 0; for (let elem of arr) { avg += elem / arr.length; } console.log(avg);

მოდით განვიხილოთ ამ გადაწყვეტის პრობლემები. ტექნიკურად კოდი მუშაობს სწორად და იძლევა სწორ პასუხს. საქმე იმაშია, რომ მათემატიკურად კორექტულია როგორც მთელი ჯამის გაყოფა რაოდენობაზე, ასევე თითოეული წევრის გაყოფა რაოდენობაზე.

თუმცა, ჩნდება სხვა პრობლემა. საქმე იმაშია, რომ ჩვენ განახორციელებთ გაყოფას იმდენჯერ, რამდენი ელემენტიცაა ჩვენს მასივში. და გამოდის, რომ ჩვენ ვაკეთებთ დიდი რაოდენობის ზედმეტ ოპერაციებს, ად ხომ გაყოფა შეიძლებოდა ბოლოს შესრულებულიყო - ერთხელ, მთელი ნაპოვნი ჯამის გაყოფით.

მოდით ოპტიმიზაცია გავუკეთოთ ჩვენს კოდს:

let sum = 0; for (let elem of arr) { sum += elem; } let avg = sum / arr.length; console.log(avg);

გააოპტიმიზირეთ შემდეგი კოდი:

for (let i = 1900; i <= 2100; i++) { let curr = new Date; let date = new Date(i, curr.getMonth(), curr.getDate()); if (curr.getDay() === date.getDay()) { console.log(date); } }

გააოპტიმიზირეთ შემდეგი კოდი:

let obj = {a: 10, b: 20, c: 30, d: 40, e: 50}; let sum = 0; for (let key in obj) { if (String(obj[key])[0] === '1' || String(obj[key])[0] === '2') { sum += obj[key]; } } console.log(sum);
ქართული
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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა