如何计算工作时长

我有一个数组,这个数组的长度不定,格式如下(这个是包含驳回状态的数组):

[
  {'hj':'受理','totaltime':'2:27'},
  {'hj':'现场','totaltime':'3:38'},
  {'hj':'预算','totaltime':'0:41'},
  {'hj':'审核(驳回)','totaltime':'0:41'},
  {'hj':'预算','totaltime':'0:6'},
  {'hj':'审核','totaltime':'0:41'},
  {'hj':'通知','totaltime':'8:17'},
  {'hj':'收费(驳回)','totaltime':'0:15'},
  {'hj':'预算','totaltime':'1:42'},
  {'hj':'审核','totaltime':'0:51'},
  {'hj':'通知','totaltime':'0:17'},
  {'hj':'收费','totaltime':'30:45'},
  {'hj':'验收','totaltime':'2:46'},
  {'hj':'施工记录','totaltime':'0:7'},
  {'hj':'竣工验收','totaltime':'1:25'}
]

其中,totaltime就是工作耗时,格式为  小时:分钟。现在我想统计除了收费环节(包括收费和收费(驳回))外的所有环节的工作时长(除了收费外所有的totaltime之和),我该怎么写?

阅读 2.2k
2 个回答
    let countTime=0;
[
  {'hj':'受理','totaltime':'2:27'},
  {'hj':'现场','totaltime':'3:38'},
  {'hj':'预算','totaltime':'0:41'},
  {'hj':'审核(驳回)','totaltime':'0:41'},
  {'hj':'预算','totaltime':'0:6'},
  {'hj':'审核','totaltime':'0:41'},
  {'hj':'通知','totaltime':'8:17'},
  {'hj':'收费(驳回)','totaltime':'0:15'},
  {'hj':'预算','totaltime':'1:42'},
  {'hj':'审核','totaltime':'0:51'},
  {'hj':'通知','totaltime':'0:17'},
  {'hj':'收费','totaltime':'30:45'},
  {'hj':'验收','totaltime':'2:46'},
  {'hj':'施工记录','totaltime':'0:7'},
  {'hj':'竣工验收','totaltime':'1:25'}
].forEach(a=>{
   if(a.hj.indexOf('收费')<0){
    let time = a.totaltime.match(/(\d+):(\d+)/);
    countTime+=(+time[1]*60)+(+time[2])
   }
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题