2017-09-23 5 views
0

Stringから2D配列に値を取得しようとしています。Uncaught TypeError:2D配列(JavaScript)で未定義のプロパティ '0'を設定できません

しかし、動作しません。エラーの説明が表示されます。

マイコード:あなたがマップであるmap = [[], []]が再び配列されている2つの要素のみを含む配列で初期化するので、あなたのコード内の

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は複雑です。 –

関連する問題