2016-08-29 2 views
1

이러한 배열을 호출하고 전체 배열이 true인지 확인하려고합니다 (예 : [ "cell1", "cell2", "cell3"]). 아래 HTML과 JS가 있습니다.다차원 배열에서 변수가 true인지 확인하는 방법은 무엇입니까?

이것은 아마도 누군가를 고칠 수있을 것입니다. 나는 그것을 고치고 해결할 방법을 찾기 위해 고심하고 있습니다.

<tr> 
      <td id="cell1" onclick="tic(this)"></td> 
      <td id="cell2" onclick="tic(this)"></td> 
      <td id="cell3" onclick="tic(this)"></td> 
     </tr> 

     <tr> 
      <td id="cell4" onclick="tic(this)"></td> 
      <td id="cell5" onclick="tic(this)"></td> 
      <td id="cell6" onclick="tic(this)"></td> 
     </tr> 

     <tr> 
      <td id="cell7" onclick="tic(this)"></td> 
      <td id="cell8" onclick="tic(this)"></td> 
      <td id="cell9" onclick="tic(this)"></td> 
     </tr> 

var win = [ 
      ["cell1", "cell2", "cell3"], 
      ["cell1", "cell4", "cell7"], 
      ["cell1", "cell5", "cell9"], 
      ["cell2", "cell5", "cell8"], 
      ["cell3", "cell6", "cell9"], 
      ["cell3", "cell5", "cell7"], 
      ["cell4", "cell5", "cell6"], 
      ["cell7", "cell8", "cell9"] 
     ]; 

     function tic(element) { 
      element.textContent = "X"; 

      for (i = 0; i < win.length; i++) { 
       var thisWinningCombo = win[i]; 

       for (x = 0; x < thisWinningCombo.length; x++) { 
        var cellId = thisWinningCombo[x]; 
        var cellValue = document.getElementById(cellId).textContent; 
        console.log(cellId + ": " + cellValue); 
       } 

      } 
     } 

답변

0

달성하려는 목표는 무엇입니까? 승리 콤보 중 하나가

var win = [ 
 
      ["cell1", "cell2", "cell3"], 
 
      ["cell1", "cell4", "cell7"], 
 
      ["cell1", "cell5", "cell9"], 
 
      ["cell2", "cell5", "cell8"], 
 
      ["cell3", "cell6", "cell9"], 
 
      ["cell3", "cell5", "cell7"], 
 
      ["cell4", "cell5", "cell6"], 
 
      ["cell7", "cell8", "cell9"] 
 
     ]; 
 

 
     function tic(element) { 
 
      element.textContent = "X"; 
 

 
      for (i = 0; i < win.length; i++) { 
 
       var thisWinningCombo = win[i]; 
 
       var hasWon = true; 
 
       for (x = 0; x < thisWinningCombo.length; x++) { 
 
        var cellId = thisWinningCombo[x]; 
 
        var cellValue = document.getElementById(cellId).textContent; 
 
        //console.log(cellId + ": " + cellValue); 
 
        hasWon = hasWon && (cellValue == "X"); 
 
       } 
 
       if (hasWon){ 
 
        console.log(hasWon); 
 
       } 
 

 
      } 
 
     }
<table border="1" cellpadding="10"> 
 
<tr> 
 
      <td id="cell1" onclick="tic(this)"></td> 
 
      <td id="cell2" onclick="tic(this)"></td> 
 
      <td id="cell3" onclick="tic(this)"></td> 
 
     </tr> 
 

 
     <tr> 
 
      <td id="cell4" onclick="tic(this)"></td> 
 
      <td id="cell5" onclick="tic(this)"></td> 
 
      <td id="cell6" onclick="tic(this)"></td> 
 
     </tr> 
 

 
     <tr> 
 
      <td id="cell7" onclick="tic(this)"></td> 
 
      <td id="cell8" onclick="tic(this)"></td> 
 
      <td id="cell9" onclick="tic(this)"></td> 
 
     </tr> 
 
</table>

를 발견하면 hasWon 변수가 true로 설정되어
관련 문제