在Javascript中声明一个空的二维数组?

新手上路,请多包涵

我想在 Javascript 中创建一个二维数组,我将在其中存储坐标 (x,y)。我还不知道我将拥有多少对坐标,因为它们将由用户输入动态生成。

预定义二维数组的示例:

var Arr=[[1,2],[3,4],[5,6]];

我想我可以使用 PUSH 方法在数组末尾添加一条新记录。

如何声明一个空的二维数组,以便当我使用我的第一个 Arr.push() 时,它将被添加到索引 0 中,并且 push 写入的每条下一条记录都将采用下一个索引?

这可能很容易做到,我只是 JS 的新手,如果有人可以编写一个我可以检查的简短的工作代码片段,我将不胜感激。谢谢

原文由 Zannix 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

您可以像这样声明一个常规数组:

 var arry = [];

然后,当您有一对值要添加到数组中时,您需要做的就是:

 arry.push([value_1, value2]);

是的,第一次调用 arry.push 时,这对值将被放置在索引 0 处。

从nodejs repl:

 > var arry = [];
 undefined
 > arry.push([1,2]);
 1
 > arry
 [ [ 1, 2 ] ]
 > arry.push([2,3]);
 2
 > arry
 [ [ 1, 2 ], [ 2, 3 ] ]

当然,由于 javascript 是动态类型的,因此不会有类型检查器强制数组保持二维。您必须确保只添加坐标对,而不是执行以下操作:

 > arry.push(100);
 3
 > arry
 [ [ 1, 2 ],
 [ 2, 3 ],
 100 ]

原文由 DJG 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你想随着创建一起初始化,你可以使用 fillmap

 const matrix = new Array(5).fill(0).map(() => new Array(4).fill(0));

5 是行数,4 是列数。

原文由 AbhinavD 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题