더북(TheBook)
const callback = (event) => {
  (중략)
  // 승자가 없으면
  let draw = true; 
  rows.forEach((row) => {
    row.forEach((cell) => {
      if (!cell.textContent) { 
        draw = false;
      }
    });
  });
  if (draw) {
    $result.textContent = `무승부`; 
    return;
  }
  turn = turn === 'X' ? 'O' : 'X';
};

이차원 배열에서는 이처럼 반복문(forEach())을 중첩해서 사용하게 됩니다. 이는 이차원 배열이 배열 안에 배열이 들어 있는 구조라서 그렇습니다. 반복문을 사용해 모든 칸에 textContent가 들어 있는지 검사할 수도 있지만, 배열 메서드인 flat()every()를 사용하면 훨씬 더 간단하게 검사할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.