首页 > 解决方案 > 在Javascript中将数据附加到多维数组中

问题描述

我正在将 PHP 代码编写到 Node.js 中,并且在程序处理多维数组的地方我已经停止了。

在 PHP 中我得到了这个(删除了 for 循环以简化它):

$tables = [];
$left_over_array = [34, 35, 36, 37];
$round = 0;
$row = 0;
$tables['round_'.$round][$row][]=$left_over_array[0];
$tables['round_'.$round][$row][]=$left_over_array[1];
$tables['round_'.$round][$row+3][]=$left_over_array[0];
$tables['round_'.$round][$row+3][]=$left_over_array[1];

编辑:$row价值不在0,1,2,3但可能是0, 1, 10, 3, 12有序的。

PHP 代码的结果如下所示:

$tables = [
              'round_0'=>[
                  '0'=>[
                      0=>34,
                      1=>35
                  ],
                  '3'=>[
                      0=>36,
                      1=>37
                  ],
               ]
          ]

稍后我需要访问这些数据。当我在这个结构中拥有它时,我可以简单地做$tables['round_0'][3][1]以获得价值36

我的问题是,如何用 Javascript 实现同样的目标?还是我应该改用对象?然后我如何对对象做同样的事情

标签: javascriptphpnode.js

解决方案


Javascript 关联数组必须声明为对象,并且在您尝试将任何内容放入其中之前,密钥必须存在。

因此,按照我的代码,我准备了一个从 0 到 9 的循环,然后检查特定的 round_{number} 是否未定义。如果是这样,我将键设置为数组,然后将元素添加到其中,类似于 php 中的[],但使用 Javascript 中的函数push()

var tables = [];
var left_over_array = [34, 35, 36, 37];

for (var round = 0; round < 10; round++) {
  if (tables['round_'+round] == undefined) {
    tables['round_'+round] = [];
  }
  tables['round_'+round].push([
    left_over_array[0],
    left_over_array[1],
  ]);
  tables['round_'+round].push([
    left_over_array[2],
    left_over_array[3],
  ]);
}

console.log(tables['round_0'][0][1]);


推荐阅读