我在javascript中使用一个简单的函数有一个奇怪的行为。我用矩阵写,但当我再次阅读时,我看不到变化。有人可以解释一下为什么吗? 这是代码:
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 :(得分:1)
忽略赋值的原因是字符串是不可变的。您无法更改字符串的任何部分。
根据您的设计的其余部分,将this.map
转换为数组数组可能更有意义。