Javascript多维数组更新特定元素 [英] Javascript multidimensional array updating specific element

查看:65
本文介绍了Javascript多维数组更新特定元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个已在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多维数组更新特定元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆