簡體   English   中英

如何訪問Angular 4中另一個對象數組中的對象數組

[英]How to access an array of objects inside another array of objects in angular 4

我有一個api響應,返回以下內容:

{
"code": 0,
"message": "hierarchy list",
"payload": [

{
  "id": 2,
  "name": "nameParent",
  "code": "WUcw",
  "childsOfPayload": [
    {
      "id": 5,
      "name": "NameChild1",
      "code": "ozyW",
      "status": "Active",
      "childsofChildOfPayload": [
        {
          "id": 8,
          "name": "NameChild2",
          "code": "aitq",
          "order": 30,

        },
 ]}]}]}

我試圖在每個childs,ChildOfPayload和childOfChildOfpayload中獲得不同的對象。

首先,我返回了有效負載的不同名稱值:

    getAllPayloadName() {
   this.userService.getName().subscribe(
    data => {
    this.values= data;
   }
 );

}

但是,我該怎么做才能使每個孩子的名字與不同的父值相關聯!

我的意思是這種情況。

       NameChild1 
       NameChild2 

我已經試過了:

manipulateDataa() {
this.values.subscribe(x => { 
x.payload.foreach((y:any) => { 
  y.childs.foreach((z:any) => { 
    console.log( z.name) 
   }) 
  })
 })
}

然后在getAllPayloadName中調用它,但仍然無法正常工作。 有什么事嗎

您可以執行以下操作以獲得所需的輸出。 在這里,您可以閱讀有關我使用過的forEach循環的更多信息。

 data = { "code": 0, "message": "hierarchy list", "payload": [ { "id": 2, "name": "nameParent", "code": "WUcw", "childsOfPayload": [ { "id": 5, "name": "NameChild1", "code": "ozyW", "status": "Active", "childsofChildOfPayload": [ { "id": 8, "name": "NameChild2", "code": "aitq", "order": 30, }, ]}]}]} names = [] function iterator (obj, namesArr){ Object.keys(obj).forEach(key => { if(key === "name") { namesArr.push(obj[key]) } else if(typeof obj[key] === "object") { iterator(obj[key][0], names) } }) } iterator(data.payload[0], names) console.log(names) 

如果api結果結構是強類型且不會改變,則可以通過此行訪問子有效負載名稱

    console.log(JSON.stringify(obj.payload[0].childsOfPayload[0].name));
    console.log(JSON.stringify(obj.payload[0].childsOfPayload[0].childsofChildOfPayload[0].name));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM