我有一个已在js中转换为2D数组的字符串.
I have a string that has been converted into an 2D Array in js.
它用来表示游戏板
每个.代表一个空间
每个|代表一行
每个X代表一堵墙
var src= "...|.X.|...|"; board = src.split(/\|/g); for (var i = 0; i < board.length; i++) { var cells = board[i].split(''); for (var j = 0; j < cells.length; j++) { cells[j] = parseInt(cells[j]); } board[i][j] = cells; console.log(board[1][1]) //returns 'X'当我访问board [i] [j]时,它会正确返回:
when i access board[i][j] it returns correctly:
等等等
我想用代表作品的字符串来更新特定元素. 但是,当我插入这样的元素时:
I want to update the specific element with a string representing a piece. However when i insert into an element like so:
数组在萤火虫中返回,如下所示:
The array returns in firebug as so:
看起来应该是这样的:
为什么元素[0] [1]和[0] [2]被覆盖?我不是在js中正确理解数组索引访问的数组吗?
Why are elements [0][1] and [0][2] being overwritten? Am I not understanding arrays of array index access correctly in js?
推荐答案问题:
我敢打赌,您有一个一维数组,每个数组中都存储有字符串.因此,您的数组实际上看起来像:
PROBLEM:
I'm betting that you have a one-dimensional array with strings stored in each. So your array actually looks like:
array ( [0] => '...', [1] => '.X.', [2] => '...' )这是您想要的时候:
array ( [0] => array ( [0] => '.', [1] => '.', [2] => '.' ), [1] => array ( [0] => '.', [1] => 'X', [2] => '.' ), [2] => array ( [0] => '.', [1] => '.', [2] => '.' ) )
构造2D数组时,请确保将board中的每个条目显式声明为数组.因此,要构建它,您的代码可能看起来像这样:
When constructing your 2D array, make sure you explicitly declare each entry in board as an array. So to construct it, your code might look something like this:
board = new Array(); rows = 3; for (var i = 0; i < rows; i++) board[i] = new Array('.', '.', '.');更多推荐
Javascript多维数组更新特定元素
发布评论