0
저는 자바 스크립트로 2 차원 배열을 채우려 고 노력하고 있습니다.자바 스크립트에서 2 차원 배열에 문자 추가
나는 내 '보드'에 추가하고 싶은 문자가 많은 배열을 가지고 있지만 보드가 제대로 작동하지 않는 것으로 보인다. Draw Board 메서드를 사용하여 웹 페이지에 보드를 인쇄하려고 할 때마다 문자 A가있는 곳에서 NaN을 얻습니다. 그냥 보드 [X] [Y] = Letters.pop (
var Letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M'];
는 루프를합니다 나머지는 0
var ROW = 10;
var COLUMN = 10;
var board = [['A', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];
function drawBoard(board) {
var str = '';
for (var x = 0; x < ROW; x++){
str += '<div class="row">';
for (var y = 0; y < COLUMN; y++){
str += '<div class="column">' +
+ board[x][y] + '</div>' + '</div>';
}
str += '</div>';
}
$('#board').append(str);
}
$(function(){
drawBoard(board);
});
는 내가하고 싶은 것은이 문자열을 가지고있는 숫자를 표시). 그런 다음 새로운 글자로 보드를 표시하십시오.
2 개의 for 루프를 실행하는 것보다 2 차원 배열에 배열을 추가하는 더 좋은 방법이 있습니까? 왜 내 보드에 문자가 아닌 NaN이 표시됩니다. 나는 많은 다른 것을 시도했다.
실제로는 '
답변
첫 번째 질문에 답하십시오. 당신이 당신의 코드를 보면 :
당신은
board[x][y]
를 추가 할 때 당신이+ +board[x][y]
아닌+
을 볼 수 있습니다. 단항+
은 연결하기 전에board[x][y]
의 값을 숫자로 변환하려고 시도하여NaN
오류가 발생합니다 (@Bergi가 지적한대로).배열의 끝에 요소를 추가하려면
push()
메서드 (경우에 따라board.push(Letters)
)를 사용할 수 있습니다. 이렇게하면 배열이 될 수있는 요소가 배열의 끝에 배치됩니다.배열의 줄을 바꾸려면
board[x] = Letters
을 사용할 수 있습니다.출처
2012-09-17 08:16:02
실제로 '++'가 아니지만 단항'+ '연산자 – Bergi
이 맞습니다. 그럼 당신에게 발견되었습니다. 나는 대답을 업데이트 할 것이다. –
관련 문제