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



我想用下面的代码把两个一维数组变成一个二维数组:

  var PassAssoArr = new Array();
  for(k in PassPourcentNames) {
    PassAssoArr[k][0] = PassPourcentNames[k]
    PassAssoArr[k][1] = PassPourcentValue[k]
  }

然而,我得到错误消息:"'undefined'是null或不是一个对象",它指向for语句后的第一行。PassPourcentNames和PassPourcentValue具有相同数量的元素,并且没有一个值为空。第一个包含字符串,第二个包含整数。

  var PassAssoArr = new Array();
  for(k in PassPourcentNames) {
    PassAssoArr[k] = new Array();
    PassAssoArr[k][0] = PassPourcentNames[k]
    PassAssoArr[k][1] = PassPourcentValue[k]
  }

也可以用[]代替new Array()

  var PassAssoArr = [];
  for(k in PassPourcentNames) {
    PassAssoArr[k] = [];
    PassAssoArr[k][0] = PassPourcentNames[k]
    PassAssoArr[k][1] = PassPourcentValue[k]
  }

我相信这在大多数JS引擎中实际上更快。

先定义PassAssoArr[k] = [];,再分配给[0][1]

Javascript不支持真正的多维数组。

您试图使用嵌套数组而不创建内部数组。

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

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

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

试着做:

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

相关内容

  • 没有找到相关文章

最新更新