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

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

JavaScript 在嵌套的 js 對象上查找元素

JavaScript 在嵌套的 js 對象上查找元素

守著星空守著你 2023-04-14 16:20:27
let object = [{    "ItemAID" : 1,    "ItemADesc" : [ {      "ItemBid" : 11,      "ItemBDesc" : [ {        "ItemCid" : 111,        "ItemCTitle" : "TitleC111",      }, {        "ItemCid" :112,        "ItemCTitle" : "TitleC112",      } ]    }]},    {        "ItemAID" : 2,        "ItemADesc" : [ {          "ItemBid" : 21,          "ItemBDesc" : [ {            "ItemCid" : 211,            "ItemCTitle" : "TitleC211",          }, {            "ItemCid" :212,            "ItemCTitle" : "TitleC212",          } ]        }]}]console.log(X.find(A => A.ItemADesc.find(B => B.ItemBDesc.find(C=>C.ItemCid === 212)?.ItemCTitle)));當 ItemCid 與 id 匹配時,我正在嘗試查找 ItemCTitle。上面的代碼作為一個整體返回 ItemAID:2 對象,而不是返回嵌套的變量值。任何線索表示贊賞。
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

使用Array.reduce你可以提取 only 的數組ItemC,并且可以很容易地找到那里的項目。


let input = [{

  "ItemAID" : 1,

  "ItemADesc" : [ {

    "ItemBid" : 11,

    "ItemBDesc" : [ {

      "ItemCid" : 111,

      "ItemCTitle" : "TitleC111",

    }, {

      "ItemCid" :112,

      "ItemCTitle" : "TitleC112",

    } ]

  }]},


  {

      "ItemAID" : 2,

      "ItemADesc" : [ {

        "ItemBid" : 21,

        "ItemBDesc" : [ {

          "ItemCid" : 211,

          "ItemCTitle" : "TitleC211",

        }, {

          "ItemCid" :212,

          "ItemCTitle" : "TitleC212",

        } ]

      }]}];


const itemC = input.reduce((acc, cur) => {

  if (cur['ItemADesc'] && cur['ItemADesc'].length > 0) {

    cur['ItemADesc'].forEach(({ ItemBDesc }) => {

      if (ItemBDesc.length > 0) {

        acc.push(...ItemBDesc);

      }

    });

  }

  return acc;

}, []).find(({ ItemCid }) => ItemCid === 211);


console.log(itemC.ItemCTitle);


查看完整回答
反對 回復 2023-04-14
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

您可以使用名為d-forest 的庫來查找深度嵌套的對象。



查看完整回答
反對 回復 2023-04-14
  • 2 回答
  • 0 關注
  • 219 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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