第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JSON數(shù)據(jù)合并

JSON數(shù)據(jù)合并

慕哥9229398 2019-02-26 13:12:59
這是在做表格時遇到的問題。通常表格渲染方式,就是根據(jù)json數(shù)組中的數(shù)據(jù)一條條遍歷就好了,但需求是同一path下的數(shù)據(jù)要放在一行Table Row上渲染,也就是我需要把同一path的JSON數(shù)據(jù)合并,path數(shù)據(jù)合并覆蓋前者,但其他數(shù)據(jù)(即使key值相同)合并但不覆蓋前者,怎么才能有效的完成這種數(shù)據(jù)的合并呢?或是有更好的解決方法嗎?對于原生JS實現(xiàn)JSON數(shù)據(jù)合并我是明白的,但當前的數(shù)據(jù)格式有些想不明白該怎么合,希望不吝賜教!
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

function parse(data) {

    const hash = {};

    data.slice().forEach(item => {

        const path = item.path;

        if (!hash[path]) {

            hash[path] = item;

        } else {

            Object.keys(item).forEach(key => {

                const hashPath = hash[path];

                if (key !== "path") {

                    const val = item[key];

                    if (!hashPath[key]) {

                        hashPath[key] = val;

                    }

                    else {

                        if (!Array.isArray(hashPath[key])) {

                            hashPath[key] = [hashPath[key]];

                        }

                        hashPath[key] = hashPath[key].concat(val);

                    }

                }


            })

        }


    });

    return Object.keys(hash).map(key => hash[key]);

}

var test = [

    {

        "path": "client_01",

        "client_list": [

            {

                "client": "test_01",

            }

        ],

        "share_type": 1,

    },

    {

        "path": "client_01",

        "group_list": [

            {

                "group": "groupData",

            }

        ],

        "user_list": [

            {

                "user": "userData",

            }

        ],

        "share_type": 2,

    }, {

        "path": "client_02",

        "client_list": [

            {

                "client": "test_02",

            }

        ],

        "share_type": 1,

    },

    {

        "path": "client_02",

        "group_list": [

            {

                "group": "groupData_02",

            }

        ],

        "user_list": [

            {

                "user": "userData_02",

            }

        ],

        "share_type": 2,

    }


];


console.log(parse(test));


查看完整回答
反對 回復(fù) 2019-03-02
  • 1 回答
  • 0 關(guān)注
  • 489 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號