Analisis Penjujukan Giliran X dan O

Dalam pelajaran ini, saya ingin menunjukkan kepada anda cara membuat penjujukan giliran X dan O dalam satu baris kod. Anda mungkin telah membuat sesuatu seperti ini:

javascriptfunction start(cells) {
  let i = 0; // nilai pembilang permulaan
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      if (i % 2 == 0) {
        this.textContent = 'X';
      } else {
        this.textContent = '0';
      }
      
      i++; // tingkatkan pembilang
    });
  }
}

Saya cadangkan menyelesaikan masalah ini dengan lebih ringkas. Mari buat array 'pemain' kita:

javascriptlet gamers = ['X', 'O'];

Seperti yang anda lihat, dalam array ini, X mempunyai kunci 0, dan O - kunci 1. Perkara yang sama boleh dikatakan tentang i % 2 - untuk X, bakinya ialah 0, dan untuk O - 1.

Maksudnya, ini boleh digunakan sebagai ganti kunci:

javascriptlet gamers = ['X', 'O'];
let key = i % 2;

console.log(gamers[key]);

Atau lebih ringkas:

javascriptlet gamers = ['X', 'O'];
console.log(gamers[i % 2]);

Atau lebih ringkas lagi:

javascriptconsole.log(['X', 'O'][i % 2]);

Sekarang mari permudahkan kod fungsi start kita:

javascriptfunction start(cells) {
  let i = 0;
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      this.textContent = ['X', 'O'][i % 2];
      i++;
    });
  }
}
Задание 1

Secara berdikari, tanpa melihat kod saya, masukkan pembetulan yang diterangkan.

Задание 2

Sekarang, sebarang sel boleh diklik secara tidak terhad dan menukar, contohnya, X kepada O. Betulkan ini.