使用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。谢谢大家!@谢谢你。昨天已修复,但忘记更新:)。