Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在js中有没有更优雅的方法来迭代json数组?_Javascript_Arrays_Iteration - Fatal编程技术网

Javascript 在js中有没有更优雅的方法来迭代json数组?

Javascript 在js中有没有更优雅的方法来迭代json数组?,javascript,arrays,iteration,Javascript,Arrays,Iteration,我试图迭代json数组并计算每个对象的小时数。代码可以工作,但感觉可能有更有效的方法来编写代码,但无论我尝试什么,代码都会中断 我的json数组: { "timesheetItems":[ { "id":"1", "title":"Ticket system integration", "hours":2

我试图迭代json数组并计算每个对象的小时数。代码可以工作,但感觉可能有更有效的方法来编写代码,但无论我尝试什么,代码都会中断

我的json数组:

{
    "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)
已工作,谢谢!