首页 > 解决方案 > 合并节点中的对象

问题描述

我有一个这样的对象数组。你能告诉我如何将 id = 1 的 ojbect 合并到一个大对象,并将所有 id = 1 的类别合并到这个对象。所以,谁能帮助我,我真的需要你的帮助。非常感谢

[
        {
            "id": 1,
            "title": "Hello",          
            "category": {
                "id": 1,
                "nameVI": "Music"              
            }         
        },
        {
            "id": 1,
            "title": "Hello", 
            "category": {
                "id": 2,
                "nameVI": "Family"                
            }           
        },
        {
            "id": 1,
            "title": "Hello", 
            "category": {
                "id": 3,                
                "nameEN": "Sensory"
            }
        },
        {
            "id": 2,
            "title": "good bye",            
            "category": {
                "id": 1,               
                "nameEN": "Music"
            }
        },
        {
             "id": 2,
            "title": "good bye",     
            "category": {
                "id": 2,                
                "nameEN": "Family"
            }
        },
        {
            "id": 2,
            "title": "good bye",     
            "category": {
                "id": 3,              
                "nameEN": "Sensory"
            }
       }]

标签: arraysnode.jsobject

解决方案


我不确定你到底想要什么。这是选择默认值(idtitle)和合并的简单方法categories

const mergeObj = (id, obj) => {
    const newObj = {};
    obj.forEach((el) => {
        if (el.id === id) {
            if (!newObj.id) {
                newObj.id = el.id;
                newObj.title = el.title;
                newObj.categories = [];
            }
            newObj.categories.push(el.category);
        }
    });
    return newObj;
};

推荐阅读