4 of 17 menu

ความสับสนระหว่างคีย์และองค์ประกอบในลูป for ใน JavaScript

ให้มีอาร์เรย์ที่มีชื่อเดือน:

let arr = [ 'ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.' ];

ให้ในตัวแปร 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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ