Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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在对象组中包含字段值之和_Javascript_Lodash - Fatal编程技术网

使用javascript在对象组中包含字段值之和

使用javascript在对象组中包含字段值之和,javascript,lodash,Javascript,Lodash,我有一个对象,其中充满了按天分组的任务。我还想将每个任务的时间字段相加,得到每天的总时间,并将其包含在对象中 为此: {'Monday': [ { task: 'Do the dishes', time: 15 }, { task: 'Walk the dog', time: 20 } ], 'Tuesday': [ { task: 'Clean house', time: 5 }, { task: 'Do ho

我有一个对象,其中充满了按天分组的
任务。我还想将每个任务的
时间
字段相加,得到每天的总时间,并将其包含在对象中

为此:

{'Monday': [
  {
    task: 'Do the dishes',
    time: 15
  },
  {
    task: 'Walk the dog',
    time: 20
  }
],
'Tuesday': [
  {
    task: 'Clean house',
    time: 5
  },
  {
    task: 'Do homework',
    time: 10
  }
  ]
}
为此:

{'Monday': {
  tasks: [
    {
      task: 'Do the dishes',
      time: 15
    },
    {
      task: 'Walk the dog',
      time: 20
    }
  ],
  totalTime: 35
},
'Tuesday': {
  tasks: [
    {
      task: 'Clean house',
      time: 5
    },
    {
      task: 'Do homework',
      time: 10
    }
  ],
  totalTime: 15
}

您可以使用纯JS(如果需要箭头函数,请使用ES6),而无需lodash。这非常公正:

const obj={‘星期一’:[{任务:洗碗,时间:15},{任务:遛狗,时间:20}],‘星期二’:[{任务:打扫房间,时间:5},{任务:做作业,时间:10}]
const result=Object.entries(obj).reduce((r[k,v])=>{
r[k]=({tasks:v,totalTime:v.reduce((a,b)=>(a.time | a)+b.time)})
返回r
}, {})

console.log(result)
您可以使用lodash的
\.mapValues()
迭代组,并使用
\.sumBy()
获取总时间:

const obj={‘星期一’:[{任务:洗碗,时间:15},{任务:遛狗,时间:20}],‘星期二’:[{任务:打扫房间,时间:5},{任务:做作业,时间:10}]
const result=\映射值(对象,任务=>({
任务,
totalTime:u.sumBy(任务,“时间”)
}))
console.log(结果)

发布的问题似乎根本不包括解决问题的方法。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您已尝试的内容,以便说明您遇到的具体障碍。有关更多信息,请参阅并使用。选择此选项是为了简化lodash。谢谢大家!@谢谢你。昨天已修复,但忘记更新:)。