⊗jsSpOtRHO 271 of 294 menu

JavaScriptでの重い操作の繰り返し最適化

前のレッスンでは、関数の繰り返し呼び出しは 実際には非常に短時間で終わり、私たちの 最適化で節約できる時間はそれほど多くありませんでした。しかし、 実行にかなり長い時間がかかる「重い」関数を 複数回呼び出す場合は、状況はかなり悪化します。

たとえば、数の約数を見つける関数があるとします:

function getDivisorsSum(num) { let res = 0; for (let i = 1; i <= num; i++) { if (num % i === 0) { res += i; } } return res; }

明らかに、この関数はかなり「重い」です。 したがって、次のようなコードを書くのは悪いアイデアです:

let num = 123456; if (getDivisorsSum(num) >= 10 && getDivisorsSum(num) <= 100) { console.log('+++'); } else { console.log('---'); }

もちろん、「重い」操作は 一度だけ実行し、結果を変数に保存してから、 必要な場所でその変数を使用する方が良いです:

let num = 123456; let sum = getDivisorsSum(num); if (sum >= 10 && sum <= 100) { console.log('+++'); } else { console.log('---'); }

以下のコードを最適化してください:

let num = 1233456789; if (getSumSquare(num) >= 10 && getSumSquare(num) <= 100) { console.log('+++'); } else { console.log('---'); } function getSumSquare(num) { let digits = String(num).split(''); let sum = 0; for (let digit of digits) { sum += digit ** 2; } return 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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否