合并节点中的对象

时间:2019-09-02 09:35:27

标签: arrays node.js object

我有一个这样的对象数组。您能告诉我如何将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"
            }
       }]

1 个答案:

答案 0 :(得分:0)

我不确定您到底想要什么。这是选择默认值(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;
};