javascript - 是否可以对这种数组进行分组?[Javascript]
问题描述
我做了以下数组。
我需要按类别对项目进行分组。
可以按类别分组吗?
我正在尝试和思考,但太难了。
我应该更改数组格式以使其简单吗?
[
{
id: 1,
name: apple,
category: {
name: 'fruit'
}
},
{
id: 2,
name: orange,
category: {
name: 'frit'
}
},
{
id: 3,
name: cucumber,
category: {
name: 'vegetable'
}
},
{
id: 4,
name: chicken,
category: {
name: 'meat'
}
},
]
我想要的结果是
[
{
category: fruit,
items: [
{
id: 1,
name: apple,
},
{
id: 2,
name: orange,
},
]
},
{
category: vegetable,
items: [
{
id: 3,
name: cucumber,
},
]
},
{
category: meat,
items: [
{
id: 4,
name: chicken,
},
]
},
]
感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢 感谢
解决方案
您需要编写一个方法来遍历您的数组并按类别排列项目。像这样的东西:
function groupByCategory (array) {
let groupedArray = [];
for (const item of array)
if (item.category.name) {
if (!groupedArray[category.name]) groupedArray[category.name] = [];
groupedArray[category.name].push(item);
}
return groupedArray;
}
推荐阅读
- css - 如何垂直居中浮动元素
- bootstrap-4 - 如何在 Bootstrap 4 导航栏中将大型设备上的置顶位置更改为小型设备上的固定顶部?
- cuda - 指令“ld”和“add”的参数不匹配
- postgresql - Postgres 和多个数据存储位置
- facebook - 如何强制组中的所有用户向我的应用授予权限
- c# - Ironbarcode.dll:System.MissingMethodException
- python-3.x - 遍历对象的列表数据
- javascript - 如何将功能从客户端传递到服务器(nodejs)
- oracle-sqldeveloper - 双击日期字段应显示当前日期
- elixir - 如何为 has_one / belongs_to_many 关联定义 Elixir Ecto 模式?