4 of 17 menu

JavaScriptのforループにおけるキーと要素の混同

月の名前を持つ配列があるとします:

let arr = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ];

変数 month に現在の月の番号が 格納されているとします:

let month = 10;

ループを使用してすべての月を出力し、 その際に現在の月を斜体で出力してみましょう。

あるプログラマーは既にこの問題を解決しましたが、 彼は誤って、変数 month に月の名前ではなく 月の番号が格納されていることに気づきませんでした:

for (let i = 0; i < arr.length; i++) { if (month === arr[i]) { // エラーはここ document.write('<i>' + arr[i] + '</i>'); } else { document.write(arr[i]); } document.write('<br>'); }

このプログラマーは配列の要素を 変数 month と比較しています。 しかし、この変数には月の番号が格納されており、 名前ではありません!

コードを正しく動作させるには、 month を月の番号、つまり カウンタ i の値と比較する必要があります:

for (let i = 0; i < arr.length; i++){ if (month === i) { // エラーを修正 document.write('<i>' + arr[i] + '</i>'); } else { document.write(arr[i]); } document.write('<br>'); }
日本語
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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否