Javascript多维数组未定义对象错误

Javascript多维数组未定义对象错误,javascript,multidimensional-array,undefined,Javascript,Multidimensional Array,Undefined,我正在尝试用两个一维数组制作一个二维数组,代码如下: var PassAssoArr = new Array(); for(k in PassPourcentNames) { PassAssoArr[k][0] = PassPourcentNames[k] PassAssoArr[k][1] = PassPourcentValue[k] } 但是,我得到错误消息:“'undefined'为null或不是对象”,它指向for语句后的第一行。 PassPourcentN

我正在尝试用两个一维数组制作一个二维数组,代码如下:

  var PassAssoArr = new Array();
  for(k in PassPourcentNames) {
    PassAssoArr[k][0] = PassPourcentNames[k]
    PassAssoArr[k][1] = PassPourcentValue[k]
  }
但是,我得到错误消息:“'undefined'为null或不是对象”,它指向for语句后的第一行。 PassPourcentNames和PassPourcentValue具有相同数量的元素,并且没有一个值为null。第一个包含字符串,第二个包含整数


非常感谢您的帮助。

首先定义
PassAssoArr[k]=[][0]
[1]

之前,Javascript不支持真正的多维数组

您试图在不创建内部数组的情况下使用嵌套数组

您需要将数组放入外部
PassAssoArr
的每个元素中:

PassAssoArr[index] = [];   //Empty array literal

您只定义了PassasSarr的一个维度-您需要设置PassasSarr[k]=new Array()

也可以使用
[]

  var PassAssoArr = [];
  for(k in PassPourcentNames) {
    PassAssoArr[k] = [];
    PassAssoArr[k][0] = PassPourcentNames[k]
    PassAssoArr[k][1] = PassPourcentValue[k]
  }
我相信在大多数JS引擎中,这实际上更快。

尝试一下:

PassAssoArr[k] = new Array(PassPourcentNames[k], PassPourcentValue[k]);
PassAssoArr[k] = new Array(PassPourcentNames[k], PassPourcentValue[k]);