2011-10-27 3 views
0

자바 스크립트에서 간단한 함수로 이상한 동작이 있습니다. 나는 매트릭스로 글을 쓰지만, 다시 읽었을 때 나는 그 변화를 볼 수 없다. 누군가 제발 이유를 설명해 주시겠습니까? 여기 코드이다 : '.'자바 스크립트 변수가 작성되지 않았습니다.

this.map = [ 
    '## ### ##', 
    '# # #', 
    '# # . # #', 
    '# ## # #', 
    '## # #', 
    '#*# ## ##', 
    ' ## ', 
    '#########' 
]; 
this.check_collision = function (x, y) { 
    var l = Math.floor (y/this.tile_size); 
    var c = Math.floor (x/this.tile_size); 

    if (this.map[ l ] != undefined) { 
     if (this.map[ l ][ c ] != undefined) { 
      if (this.map[ l ][ c ] == '#') { 
       return true; 
      } 
      else if (this.map[ l ][ c ] == '.' || this.map[ l ][ c ] == '*') { 
       this.map[ l ][ c ] = ' '; 
       console.debug ("'" + this.map[ l ][ c ] + "'"); 
      } 
     } 
    } 
    return false; 
}; 

console.debug() 인화 또는 '*'이지만 글자 ''위에 줄을 쓰십시오.

+0

'console.debug' 대신'alert'를 테스트하십시오. 당신은 여전히 ​​같은 결과를 얻나요? –

+0

예. 같은 결과 –

+2

[샘플 코드] (http://sscce.org/)가 불완전합니다. 실제로 this.map [l]에 저장된 것은 무엇입니까? 문자열 인 경우 문자열을 변경할 수 없습니다. – outis

답변

1

할당을 무시하는 이유는 문자열을 변경할 수 없다는 것입니다. 문자열의 어떤 부분도 변경할 수 없습니다.

나머지 디자인에 따라 this.map을 배열 배열로 변환하는 것이 더 적합 할 수 있습니다.

관련 문제