[英]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.