การวิเคราะห์การสลับกันของ X และ O
ในบทเรียนนี้ ฉันต้องการแสดงให้คุณเห็นวิธีการทำ การสลับกันของ X และ O ในหนึ่งบรรทัด คุณอาจจะทำอะไรแบบนี้:
function start(cells) {
let i = 0; // ค่าเริ่มต้นของตัวนับ
for (let cell of cells) {
cell.addEventListener('click', function() {
if (i % 2 == 0) {
this.textContent = 'X';
} else {
this.textContent = '0';
}
i++; // เพิ่มค่าตัวนับ
});
}
}
ฉันเสนอให้แก้ปัญหาด้วยวิธีที่สั้นกว่า มาสร้าง
อาร์เรย์ของ 'ผู้เล่น' ของเรา:
let gamers = ['X', 'O'];
อย่างที่คุณเห็น ในอาร์เรย์นี้ X มี
คีย์ 0 และ O มีคีย์ 1 สิ่ง
เดียวกันนี้สามารถกล่าวได้สำหรับ i % 2
- สำหรับ X เศษที่ได้จะเป็น 0 และ
สำหรับ O จะเป็น 1
นั่นคือเราสามารถใช้สิ่งนี้แทนคีย์ได้:
let gamers = ['X', 'O'];
let key = i % 2;
console.log(gamers[key]);
หรือให้สั้นกว่านั้น:
let gamers = ['X', 'O'];
console.log(gamers[i % 2]);
หรือให้สั้นยิ่งขึ้น:
console.log(['X', 'O'][i % 2]);
มาทำให้โค้ดของฟังก์ชัน start ง่ายขึ้น:
function start(cells) {
let i = 0;
for (let cell of cells) {
cell.addEventListener('click', function() {
this.textContent = ['X', 'O'][i % 2];
i++;
});
}
}
ด้วยตัวเอง โดยไม่แอบดูโค้ดของฉัน ให้ทำการแก้ไขตามที่อธิบายไว้
ตอนนี้เซลล์ใด ๆ สามารถถูกคลิกได้ไม่จำกัดครั้ง เปลี่ยน เช่น X เป็น O ให้แก้ไขสิ่งนี้