Analiza alternării X și 0

În această lecție vreau să vă arăt cum să faceți alternarea X și 0 într-o singură linie. Probabil ați făcut ceva de genul:

javascriptfunction start(cells) {
  let i = 0; // valoarea inițială a contorului
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      if (i % 2 == 0) {
        this.textContent = 'X';
      } else {
        this.textContent = '0';
      }
      
      i++; // creștem contorul
    });
  }
}

Eu vă propun să rezolvăm problema mai scurt. Să facem un array cu 'jucătorii' noștri:

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

După cum vedeți, în acest array X-ul are cheia 0, iar 0 - cheia 1. Același lucru se poate spune și despre i % 2 - pentru X restul va fi 0, iar pentru 0 - 1.

Adică această expresie poate fi folosită în locul cheii:

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

console.log(gamers[key]);

Sau și mai scurt:

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

Sau și mai scurt:

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

Să simplificăm acum codul funcției noastre start:

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

Singur, fără să vă uitați la codul meu, introduceți modificarea descrisă.

Задание 2

Acum pe orice celulă se poate face un număr nelimitat de clicuri, schimbând, de exemplu, X în 0. Corectați acest lucru.