我试图用这个代码用两个一维数组制作一个二维数组:
var PassAssoArr = new Array();
for(k in PassPourcentNames) {
PassAssoArr[k][0] = PassPourcentNames[k]
PassAssoArr[k][1] = PassPourcentValue[k]
}
但是,我收到错误消息:“'undefined'为null或不是对象”,它指向for语句后面的第一行。 PassPourcentNames和PassPourcentValue具有相同数量的元素,并且没有值为null。第一个包含字符串,第二个包含整数。
任何帮助都是非常有用的。
答案 0 :(得分:1)
首先定义PassAssoArr[k] = [];
,然后再分配给[0]
和[1]
。
答案 1 :(得分:1)
Javascript不支持真正的多维数组。
您尝试使用嵌套数组而不创建内部数组。
您需要将数组放入外部PassAssoArr
:
PassAssoArr[index] = []; //Empty array literal
答案 2 :(得分:0)
您只定义PassAssoArr的一个维度 - 您需要设置PassAssoArr [k] = new Array();
答案 3 :(得分:0)
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引擎中这实际上更快。
答案 4 :(得分:0)
尝试做:
PassAssoArr[k] = new Array(PassPourcentNames[k], PassPourcentValue[k]);