我使用预定义变量分配数组[0][0]和数组[0][1],并使用for循环使用来自php变量的数据分配数组的其余部分。
function getDistance(){
var row = JSON.parse(document.getElementById('rows').innerHTML);
var markers = JSON.parse(document.getElementById('markers').innerHTML);
var distance = new Array(row);
for (var i = 0; i < row; i++) {
distance[i] = new Array(2);
}
distance [0][0]= 16.78789;
distance [0][1]= 96.15291;
for(var i = 0; i<markers.length; i++){
var latt = parseFloat(markers[i].latitude);
var longt = parseFloat(markers[i].longitude);
distance [i+1][0]= latt;
distance [i+1][1]= longt;
}
}
这就是我在距离 [i+1] 中遇到错误的地方。它说距离[i+1]未定义。如果我在 for 循环中分配距离[i][0],则代码工作正常,这意味着我分配给距离[0][0] 和 [0][1]。它不允许我从数组索引 1 开始。 这段代码正在工作,我的变量没有任何问题,我只在数组索引出错时得到我想要的所有变量。
function getDistance(){
var row = JSON.parse(document.getElementById('rows').innerHTML);
var markers = JSON.parse(document.getElementById('markers').innerHTML);
var distance = new Array(row);
for (var i = 0; i < row; i++) {
distance[i] = new Array(2);
}
for(var i = 0; i<markers.length; i++){
var latt = parseFloat(markers[i].latitude);
var longt = parseFloat(markers[i].longitude);
distance [i][0]= latt;
distance [i][1]= longt;
}
}
最佳答案
在解析该 JSON 后,请确保“行”是一个数字,否则您的数组将在 0 处包含单个“字符串”或“对象”项
var row = parseInt(JSON.parse(document.getElementById('rows').innerHTML));
然后检查“距离”长度
var distance = new Array(row);
console.log(distance)
关于javascript - Javascript 二维数组出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51550417/