亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

遞歸重寫JSON樹的函數,將1項的任何數組轉換為對象

遞歸重寫JSON樹的函數,將1項的任何數組轉換為對象

尚方寶劍之說 2022-09-16 20:50:23
有點奇怪的請求,但我需要一些幫助來編寫一個函數,該函數將轉換一些看起來像這樣的JSON(非常人為的示例抱歉):{  "userDetails": [    {      "name": "DOM",      "age": 30,      "comments": [        {          "text": "Text"        },        {          "text": "HELLO",          "stuff": [            {              "name": "DOM"            }          ]        }      ]    }  ],  "items": [    {      "name": "A"    },    {      "name": "B"    }  ]}我想要:{  "userDetails": {    "name": "DOM",    "age": 30,    "comments": [      {        "text": "Text"      },      {        "text": "HELLO",        "stuff": {          "name": "DOM"        }      }    ]  }  "items": [    {      "name": "A"    },    {      "name": "B"    }  ]}因此,僅對具有 1 個元素的數組進行去害,僅此而已。希望使用洛達什褶皺的解決方案。
查看完整描述

1 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

簡單的樹遍歷和展開數組長度 1

注意:就地發生突變


data={

  "userDetails": [{

    "name": "DOM",

    "age": 30,

    "arr": [{"c":"c"}]

  }],

  "items": [

    {

      "name": [{"A": [[[["A"],["B"]]]]}]

    },

    {

      "name": "B"

    }

  ]

}


walk = (node,k) => {

    if(typeof node[k] === 'object')

    for(const key of Object.keys(node[k])) walk(node[k],key)

    if(Array.isArray(node[k]) && node[k].length === 1)

      node[k]=node[k][0]

}


walk({data},'data')


console.log(data)


查看完整回答
反對 回復 2022-09-16
  • 1 回答
  • 0 關注
  • 66 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號