Javascript 在js中有没有更优雅的方法来迭代json数组?
我试图迭代json数组并计算每个对象的小时数。代码可以工作,但感觉可能有更有效的方法来编写代码,但无论我尝试什么,代码都会中断 我的json数组:Javascript 在js中有没有更优雅的方法来迭代json数组?,javascript,arrays,iteration,Javascript,Arrays,Iteration,我试图迭代json数组并计算每个对象的小时数。代码可以工作,但感觉可能有更有效的方法来编写代码,但无论我尝试什么,代码都会中断 我的json数组: { "timesheetItems":[ { "id":"1", "title":"Ticket system integration", "hours":2
{
"timesheetItems":[
{
"id":"1",
"title":"Ticket system integration",
"hours":2
},
{
"id":"2",
"title":"Integration with Google Maps API",
"hours":3
},
{
"id":"3",
"title":"Prepare test cases",
"hours":4
}
]
}
迭代:
let numberOfSheets = 0;
const lam = this.state.sheets.forEach( item => numberOfSheets += item.hours)
尝试在
时间表
数组上使用reduce
:
var表={
“时间表”:[
{
“id”:“1”,
“标题”:“票务系统集成”,
“小时数”:2
},
{
“id”:“2”,
“标题”:“与谷歌地图API的集成”,
“小时数”:3
},
{
“id”:“3”,
“标题”:“准备测试用例”,
“小时数”:4小时
}
]
}
让numberOfSheets=sheets.timesheetims.reduce((numberOfSheets,item)=>numberOfSheets+item.hours,0);
控制台日志(编号页)代码>尝试过,但似乎不起作用。请记住,上面只是一个示例。您需要根据自己的代码对其进行调整(例如,将工作表
替换为此.state.sheets
)。尝试此.state.sheets.reduce((总计,{hours})=>总计+小时,0)
已工作,谢谢!