javascript - Javascript 二维数组出现类型错误

标签 javascript arrays

我使用预定义变量分配数组[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/

相关文章:

javascript - Mongoose,对象中的数组

c++ - 字符串结构体和字符串数组一样吗?

c 将指针传递给处理 char 数组和数据的函数

javascript - 如何使用ES6 super在子构造函数中调用父方法?

javascript - CollectionsFS 文件未上传到服务器

javascript - 由于数据量巨大,Javascript 变得无响应和停止

c - 如何将二维数组传递给 C 程序?

c++ - 在排序和旋转的数组中搜索

javascript - 在 jQuery 选择中混合 Javascript 变量和 DIV ID 名称

javascript - 如何将颜色更改为打印机中的可打印颜色以及如何在 jpg cmyk 中保存 Canvas 上下文?