我承认我在 JavaScript 和 JSON 方面很弱。我花了很多时间试图弄清楚为什么我的对象中的数字加在一起时返回 NaN。考虑到这一点,下面是我的 JSON,存储到一个变量中:
var data = [
{
"acc_ext_id": null,
"cat_code": 10002,
"cat_ds": "REVENUE",
"category_id": null,
"chart_id": null,
"created_at": null,
"dept_id": null,
"feb": null,
"id": null,
"jan": 30,
"note": null,
"total_cost": null,
"updated_at": null,
"year_id": null
},
{
"acc_ext_id": "41260-02600",
"cat_code": 10002,
"cat_ds": "REVENUE",
"category_id": 2,
"chart_id": 2373,
"created_at": "2013-01-15 16:43:52.169213",
"dept_id": 86,
"feb": 45,
"id": 3,
"jan": 60,
"note": "Two",
"total_cost": 105,
"updated_at": "2013-01-15 16:43:52.169213",
"year_id": 1
}
]
然后我尝试遍历对象并对值求和:
var jan;
for (var i=0;i<data.length;i++){
if(data[i].jan != null){
jan += parseFloat(data[i].jan);
console.log(jan);
}
}
在控制台打印出来的是NaN
. 我试图解析数字并将其保留为原始数字,但无济于事。我的对象有问题吗?这是一个 jsFiddle 来说明:http: //jsfiddle.net/5E2pm/3/