Array重组

第一种:

[

    {

        name: 'name1',

        cag: 'a'

    },

    {

        name: 'name2',

        cag: 'a'

    },

    {

        name: 'name3',

        cag: 'a'

    },

    {

        name: 'name4',

        cag: 'b'

    },

]

第二种:

[

    {

        slug: 'a',

        item: [

            {

                name: 'name1',

                cag: 'a'

            },

            {

                name: 'name2',

                cag: 'a'

            },

            {

                name: 'name3',

                cag: 'a'

            }

        ]

    },

    {

        slug: 'b',

        item: [

            {

                name: 'name4',

                cag: 'b'

            }

        ]

    }

]

JS如何将第一种重组成第二种格式?


当年话下
浏览 571回答 1
1回答

慕工程0101907

function handle (arr) {    var res = [], obj = {}, index = 0;    arr.forEach(val => {        if (obj.hasOwnProperty(val.cag)) {            res[obj[val.cag]].item.push(val);            } else {            obj[val.cag] = index++;            res.push({                slug: val.cag,                item: [val]            });        }    });    return res;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript