여기에 생명의 게임을 만들고 셀의 모든 이웃을 반복하고 점수를 합산하는 함수로 작업합니다 (각 셀은 0 또는 1입니다). 보드는 2 차원 배열로 표현됩니다. 일반적으로 셀에는 8 개의 이웃이 있습니다. 문제는 보드 모서리에있는 셀에는 옆에 3 개의 이웃 셀이 있고 측면에있는 셀에는 5 개가 있습니다. 아래 코드를 사용하여 배열을 반복하면 일부 이웃은 배열에서 정의되지 않은 값을 반환합니다. 나는 0으로 정의되지 않은 변환 점수를 합계하는 것을 사용하려면,하지만 난 오류가 발생합니다 :2 차원 배열로 표현 된 보드에서 셀의 모든 이웃을 반복하는 방법은 무엇입니까?
catch되지 않은 형식 오류 : 속성을 읽을 수 없습니다 '-1'당신의 도움에 대한
정의되지 않은 감사의!
var array = [
[0,0,1,0,1,0,1,0,1,1],
[0,0,1,0,1,0,1,0,1,1],
[0,0,1,0,1,0,1,0,1,1],
[0,0,1,0,1,0,1,0,1,1],
[0,0,1,0,1,0,1,0,1,1],
[0,0,1,0,1,0,1,0,1,1],
[0,0,1,0,1,0,1,0,1,1],
[0,0,1,0,1,0,1,0,1,1],
[0,0,1,0,1,0,1,0,1,1],
[0,0,1,0,1,0,1,0,1,1]
]
for(var i=0; i < array.length; i++){
for(var j=0; j < array[i].length; j++){
var totalScore = 0;
var scores = [
//i = row in loop
//j = column nested loop
array[i-1][j-1],
//upper left corner
array[i-1][j],
//top side
array[i-1][j+1],
//upper right corner
array[i][j-1],
//left side
array[i][j+1],
//right side
array[i+1][j-1],
//bottom left corner
array[i+1][j],
//bottom side
array[i+1][j+1]
//bottom right corner
];
scores.forEach(function(item){
var score = item;
if(score === "undefined"){
score = 0;
}
totalScore += score;
})
console.log(totalScore);
}
}
'array [i-1] [j-1]'은 첫 번째 반복에서 존재하지 않는 배열에서'-1' 인덱스를 찾을 것입니다. – Mairaj
'array [i + 1] [j + 1]'은 마지막 반복에 대해서도 존재하지 않는'10 번째 인덱스 '를 찾는다. – Mairaj
감사합니다. 그러나 요소가 없을 때 점수를 0으로 설정하는 방법은 무엇입니까? – chemook78