我正在尝试将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”
答案 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]);
})