Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以像在java中一样在javascript中初始化二维数组?_Javascript_Arrays - Fatal编程技术网

是否可以像在java中一样在javascript中初始化二维数组?

是否可以像在java中一样在javascript中初始化二维数组?,javascript,arrays,Javascript,Arrays,我想用javascript表示一个棋盘游戏,为此我需要一个二维数组 我有不同的电路板大小,所以我需要在开始时用电路板大小初始化阵列。我是一名java程序员,因此我知道在java中,当您需要二维数组时,您只需执行以下操作: int board_size = 6; String board = new String[board_size][board_size]; 如何使用javascript实现这一点?我已经搜索并找到了一些实现这一点的方法,但都没有这一种直观。对于JavaScript,它不像J

我想用javascript表示一个棋盘游戏,为此我需要一个二维数组

我有不同的电路板大小,所以我需要在开始时用电路板大小初始化阵列。我是一名java程序员,因此我知道在java中,当您需要二维数组时,您只需执行以下操作:

int board_size = 6;
String board = new String[board_size][board_size];

如何使用javascript实现这一点?我已经搜索并找到了一些实现这一点的方法,但都没有这一种直观。

对于JavaScript,它不像Java那样是一种静态语言。它是动态的。这意味着您可以创建数组,而无需预设数组的大小,但如果需要,您可以生成所需大小的数组

var items = [[1,2],[3,4],[5,6]];
alert(items[0][0]); // 1
如果你需要增加,就这么做

items.push([7,8]);
这将添加下一个元素。 代码取自旧堆栈溢出日志:


编辑以正确地使项目中的I与变量声明相同。

与Java或C#中不同,它不是必需的。Javascript数组是动态增长的,并且经过优化,可以这样工作,因此您不必预先设置矩阵维度的大小

但是,如果您坚持,可以执行以下操作来预先设置尺寸:

var board = [];
var board_size = 6;

for (var i = 0; i < board_size; i++) {
    board[i] = new Array(board_size);
}
var板=[];
var板尺寸=6;
对于(变量i=0;i
总之,您只有三个选择:

  • 使用文本初始化(如@Geohut-answer中)
  • 使用循环初始化(如我的示例中所示)
  • 不要预先初始化,而是按需初始化,更接近访问维度的代码

我见过这种解决方案。即使是动态的,为什么我不能这样创建呢?你不能预设类型变量基于变量的输入类型你不能将变量预定义为整数或字符串。它们是基于我所投票的价值而变成这些东西的,但是@TheZenCoder的答案更有用。thx无论如何,这样做有什么缺点吗?在不需要的时候,需要额外的加载时间来预设空间。正如@Geohut所说,即使你永远无法访问矩阵,你也会损失一些时间和空间。然而,对于6x6矩阵,这甚至不值得一提。无论如何,这是许多人常用的一种预初始化维度的技术。另一种方法是在需要访问元素的代码中初始化维度,这样在需要时只初始化所需的维度。