是否可以对这种数组进行分组? [Javascript]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以对这种数组进行分组? [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;

以上是关于是否可以对这种数组进行分组? [Javascript]的主要内容,如果未能解决你的问题,请参考以下文章

在 PostgreSQL 上以正确的顺序对数组元素进行分组

初学者要注意这8个web前端javascrip陷阱

JavaScrip之BOMday0914

你将如何在 python 的数组中对这三个区域进行分组/聚类?

如何对数组中的日期进行分组?

如何在 React Native 中对数组进行分组