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]);