2017-09-23 87 views
0

我嘗試設置值從字符串轉換爲二維數組。Uncaught TypeError:無法設置二維數組(undefined)的屬性'0'(JavaScript)

但它不起作用。圖片中的錯誤描述。

我的代碼:

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中感謝。很好的答案。 javascript很複雜。 –

相關問題