// 定义原始数据列表
const data = [
{
id: 1,
name: '苹果',
category: '水果',
children: [
{
id: 11,
name: '红富士',
category: '水果',
children: []
},
{
id: 12,
name: '青苹果',
category: '水果',
children: []
}
]
},
{
id: 2,
name: '茄子',
category: '蔬菜',
children: []
},
{
id: 3,
name: '鲫鱼',
category: '水产',
children: []
},
{
id: 4,
name: '白菜',
category: '蔬菜',
children: [
{
id: 41,
name: '老白菜',
category: '蔬菜',
children: []
}
]
}
]
// 定义分类统计函数
function countByCategory(data) {
const result = {}
data.forEach(item => {
if (!result[item.category]) {
result[item.category] = 1
} else {
result[item.category] += 1
}
if (item.children) {
Object.assign(result, countByCategory(item.children))
}
})
return result
}
// 调用分类统计函数
const countResult = countByCategory(data)
console.log(countResult)
// 输出结果:{ '水果': 3, '蔬菜': 3, '水产': 1 }
上一篇:按类别的Word邮件合并错误
下一篇:按类别对两列求和的数学运算分组