我正在使用reduce函數,它循環遍歷我的JSON文件並將指定的鍵值彙總在一起。使用reduce來循環JSON
這工作正常,直到我刪除其中的一個值。
我的JSON是:
[{
"id": 100,
"jobNumber": 1,
"jobTasks": [{
"id": 12,
"cost": {
"amountString": 100
}
},
{
"id": 13,
"cost": {
"amountString": 500
}
}
]
},
{
"id": 101,
"jobNumber": 2,
"jobTasks": [{
"id": 14,
"cost": {
"amountString": 100
}
},
{
"id": 15
}
]
}
]
的減少功能我用的是:
json.data.forEach(function(item) {
var sum = item.jobTasks.reduce(function(sum, elem) {
return sum + elem.cost.amountString;
}, 0);
console.log('jobNumber' + item.jobNumber + ' ' + sum);
});
我試圖做到這一點:
jobNumber1 600
jobNumber2 100
這將正常工作如果我在第二份工作中放置另一個cost.amountString,但是有兩個i n個第一和一個第二,如圖我的JSON上面,我得到以下錯誤:
TypeError: Cannot read property 'amountString' of undefined
是否減少需要一個以上的或值對相同數量的工作?我嘗試過各種循環而沒有成功。
謝謝!這真的有幫助!我是個笨蛋,不想用'?'早。 –
很高興,它幫助:) – Agalo