我为数组[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循环中分配distance [i] [0],则代码工作正常,这意味着我将分别分配给distance [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;
}
}
答案 0 :(得分:1)
数组是零索引,因此您应该与第1行进行比较
response.content
并在此行中删除+1
for (var i = 1; i < distance.length-1; i++) {
答案 1 :(得分:1)
在解析JSON之后,请确保“行”是一个数字,否则您的数组将在0处包含单个“字符串”或“对象”项
var row = parseInt(JSON.parse(document.getElementById('rows').innerHTML));
然后检查“距离”长度
var distance = new Array(row);
console.log(distance)