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

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

根據(jù)父元素類型格式化json

根據(jù)父元素類型格式化json

躍然一笑 2021-12-12 10:59:47
我有一個 JSON,我需要所有與類型 1 不同的人都在類型 1 下方成為類型 1 的孩子也就是說,如果它不同于 1 并且正好低于類型 1,則該值必須成為類型 1 的嵌套對象例子array = [  {    name: 'name1',    type: 1  },  {    name: 'name2',    type: 2  },  {    name: 'name3',    type: 3  },  {    name: 'name4',    type: 1  },  {    name: 'name5',    type: 2  },]數(shù)組應該變成下面這樣。arrayFormated = [  {    name: 'name1',    type: 1    child: [      {        name: 'name2',        type: 2      },      {        name: 'name3',        type: 3      }    ]  },  {    name: 'name4',    type: 1,    child: [{      name: 'name5',      type: 2    }]  },]我嘗試使用地圖  this.formatedArray = array.map((x, index) => {    if (x.type !== 1) {      return {        name: x.name        type: x.type      }    }
查看完整描述

2 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

您可以使用for循環(huán)對數(shù)組進行迭代,如果項目的typeis 1,則可以將其分配給parent。


然后繼續(xù)向children數(shù)組追加其他元素,直到再次遇到帶有typeof的項目1。然后將子項作為child屬性添加到parent對象并將結果推送到新數(shù)組。


let array = [{ name: 'name1', type: 1 }, { name: 'name2', type: 2 }, { name: 'name3', type: 3 }, { name: 'name4', type: 1 }, { name: 'name5', type: 2 }, ];


let result = [];

let parent = null;

let children = [];


for (let i = 0; i < array.length; i++) {

  if (array[i].type === 1) {

    if (parent) {

      parent.child = children;

      result.push(Object.assign(parent));

      children = [];

    }

    parent = Object.assign(array[i]);

    continue;

  }


  children.push(Object.assign(array[i]));

}


if (parent) {

  parent.child = children;

  result.push(Object.assign(parent));

}


console.log(result);


查看完整回答
反對 回復 2021-12-12
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

為此,您可以使用各種方法。例如,最詳細的是使用循環(huán)(不確定它是否真的有效,沒有運行它,請視為偽代碼):


const result = [];

let parent;

array.forEach(element => {

  if (element.type === 1) {

     parent = element;

     parent.children = [];

     result.push(element);


     return;

   }

   parent.children.push(element);

})


我最擔心的是,您的問題聽起來像是您嘗試執(zhí)行的任務有問題。我不知道背景,因為你的帖子很抽象,但我懷疑你試圖解決一個可以用更簡單的方式解決的問題。


我們,程序員通常會修復出現(xiàn)在我們腦海中的第一個解決方案,并且如果該解決方案并不真正有效或脆弱,則猶豫退后并重新考慮整個問題以找到更合適的解決方案。


我希望我以任何方式提供幫助。


查看完整回答
反對 回復 2021-12-12
  • 2 回答
  • 0 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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