过滤数组中的项目 - 在 JSON 中添加元素
Filter item in array - Adding elements in JSON
我是 JavaScript 的初学者,我需要:
我有一个如下所示的数组:
[
{
name: "Petter",
totalHour: 14
}
{
name: "Klaus",
totalHour: 13
}
{
name: "Petter",
totalHour: 4
}
{
name: "Petter",
totalHour: 9
}
{
name: "Trevor",
totalHour: 8
}
]
在数组中迭代后,我想要:
[
{
name: "Petter",
totalHour: 27
}
{
name: "Klaus",
totalHour: 13
}
{
name: "Trevor",
totalHour: 8
}
]
也就是我想对相同的名字进行分组,加上各自的totalHour。
JavaScript 中有什么方法可以做到这一点吗?
希望这段代码对您有所帮助
var arr = [
{
name: "Petter",
totalHour: 14
},
{
name: "Klaus",
totalHour: 13
},
{
name: "Petter",
totalHour: 4
},
{
name: "Petter",
totalHour: 9
},
{
name: "Trevor",
totalHour: 8
}
]
var helper = {};
var result = arr.reduce(function(r, o) {
var key = o.name;
if(!helper[key]) {
helper[key] = Object.assign({}, o); // create a copy of o
r.push(helper[key]);
} else {
helper[key].totalHour += o.totalHour;
}
return r;
}, []);
我是 JavaScript 的初学者,我需要:
我有一个如下所示的数组:
[
{
name: "Petter",
totalHour: 14
}
{
name: "Klaus",
totalHour: 13
}
{
name: "Petter",
totalHour: 4
}
{
name: "Petter",
totalHour: 9
}
{
name: "Trevor",
totalHour: 8
}
]
在数组中迭代后,我想要:
[
{
name: "Petter",
totalHour: 27
}
{
name: "Klaus",
totalHour: 13
}
{
name: "Trevor",
totalHour: 8
}
]
也就是我想对相同的名字进行分组,加上各自的totalHour。
JavaScript 中有什么方法可以做到这一点吗?
希望这段代码对您有所帮助
var arr = [
{
name: "Petter",
totalHour: 14
},
{
name: "Klaus",
totalHour: 13
},
{
name: "Petter",
totalHour: 4
},
{
name: "Petter",
totalHour: 9
},
{
name: "Trevor",
totalHour: 8
}
]
var helper = {};
var result = arr.reduce(function(r, o) {
var key = o.name;
if(!helper[key]) {
helper[key] = Object.assign({}, o); // create a copy of o
r.push(helper[key]);
} else {
helper[key].totalHour += o.totalHour;
}
return r;
}, []);