⊗jsSpOtRO 270 of 294 menu

JavaScriptにおける繰り返し操作の最適化

初心者プログラマーはしばしば、リソースを浪費して 同じ関数を何度も無思慮に呼び出してしまいます。

例を見てみましょう。あるパスを含む文字列が 与えられているとします:

let path = 'img.png';

ここでの課題は、パスが 拡張子.pngまたは.jpgで 終わっているかどうかを確認することです。 ある初心者プログラマーは以下のような 解決策を書きました:

let path = 'img.png'; if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') { console.log('+++'); } else { console.log('---'); }

この解決策の何が問題でしょうか?問題は、 メソッドsliceが2回呼び出され、 同じことを行っていることです。これは もちろん最適ではありません。

最適化するには、文字列の切り取りを 1回だけ実行し、結果を変数に記録して、 その後その変数をさらに使用する必要があります:

let path = 'img.png'; let ext = path.slice(-4); if (ext === '.png' || ext === '.jpg') { console.log('+++'); } else { console.log('---'); }

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

let num = 123; if (String(num)[0] === '1' || String(num)[0] === '2') { console.log('+++'); } else { console.log('---'); }

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

let date = new Date(); if (date.getDay() === 0 || date.getDay() === 6) { console.log('weekend'); } else { console.log('weekday'); }

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

let date = new Date(); let res; if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) { res = 'year ' + date.getFullYear() + ' fits'; } else { res = 'year ' + date.getFullYear() + ' doesn't fit'; } console.log(res)
日本語
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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否