2D数组中的JavaScript TypeError

时间:2017-06-18 21:48:07

标签: javascript arrays json

我正在尝试将json中的值读入2D数组

0*10+0=0
-50/10=-5
- - 
0*10+(-5)=-5
-5/10=0
- - 
END, output -5

对于i = 0且i = 1,它工作正常但在i = 2时它给出错误

  

TypeError:无法设置未定义的属性“0”

1 个答案:

答案 0 :(得分:2)

您的数组arr中只有两个项目,即空数组 因此,arr[0]是第一个,而arr[1]是第二个,arr[2]不存在。如果您有arr = [[],[],[]];,那么arr[2]会起作用,但您可以在那里看到问题 最好的选择是在使用之前创建子阵列 此外,forEach函数提供了一个计数器,可以使用它而不是创建自己的计数器。

var arr = [];
var file = './test.json';
jsonfile.readFile(file, function(err, objs) {
    objs.forEach(function (obj, i) {
        arr[i] = [];
        arr[i][0] = obj["outcount"];
        arr[i][1] = obj["gateID"];
        arr[i][2] = obj["timestamp"];
        arr[i][3] = obj["eventCode"];
        i = i + 1;
    });
    console.log(arr[2]);
})