2017-09-23 3 views
0

값을 String에서 2D 배열로 설정하려고합니다.잡히지 않은 TypeError : 2D 배열 (JavaScript)에서 정의되지 않은 속성 '0'을 설정할 수 없습니다.

하지만 작동하지 않습니다. 오류 설명

내 코드 : 당신이지도입니다 map = [[], []] 다시 배열 인 두 요소를 포함하는 배열입니다 초기화하기 때문에 코드에서

data = "012021111" 
function isGameOver(data){ 
var map = [[],[]]; 
var index = 0; 
    for (var i = 0; i < 3; i++) { 
     for (var j = 0; j < 3; j++) { 
      map[i][j] = data[index]; 
      console.log("index: " +index+ ",i: " + i + ",j: " + j + ", data: " + map[i][j]); 
      index++;    
     }    
    }   
} 

enter image description here

답변

2

오류입니다. 하지만 당신은 정의되지 않은 map [2]에 접근하려고합니다. 더 나은 해결책은 맵을 빈 배열로 초기화하고 필요에 따라 루프 푸시 배열을 내부에 매핑하는 것입니다.

data = "012021111" 
 
function isGameOver(data){ 
 
var map = []; 
 
var index = 0; 
 
for (var i = 0; i < 3; i++) { 
 
    map.push([]); 
 
    for (var j = 0; j < 3; j++) { 
 
     map[i][j] = data[index]; 
 
     console.log("index: " +index+ ",i: " + i + ",j: " + j + ", data: " + map[i][j]); 
 
     index++;    
 
    }    
 
}   
 
} 
 

 
isGameOver(data);

+0

감사 DIJ. 좋은 대답. 자바 스크립트는 복잡합니다. –

관련 문제