js数组实现分类统计将⽔果数组中同类的⽔果合并为⼀条并求出总数
var fruits =
[{
name:'apple',
value:1
},
{
name:'apple',
value:2
},// 总计3个苹果
{
name:'banana',
js合并两个数组
value:2
},
{
name:'banana',
value:3
}];// 总计5个⾹蕉
var fruitTotal =[];// 存最终数据结果
// 数据按照⽔果名称进⾏归类
var nameContainer ={};// 针对键name进⾏归类的容器
fruits.forEach(item =>{
nameContainer[item.name]= nameContainer[item.name]||[];
nameContainer[item.name].push(item);
});
console.log(nameContainer);// 按照⽔果名称归类完成:{ apple: Array(2), banana: Array(2) }
// 统计不同种类⽔果的数量
var fruitName = Object.keys(nameContainer);// 获取⽔果种类:["apple", "banana"] fruitName.forEach(nameItem =>{
let count =0;
nameContainer[nameItem].forEach(item =>{
count += item.value;// 遍历每种⽔果中包含的条⽬计算总数
});
fruitTotal.push({'name': nameItem,'total': count});
});
console.log(fruitTotal);
// 输出结果:
// [{ name: "apple", total: 3 },
//  { name: "banana", total: 5 }]