Javascript 如何访问angular 4中另一个对象数组中的对象数组
我有一个api响应,返回以下内容:Javascript 如何访问angular 4中另一个对象数组中的对象数组,javascript,arrays,angular,typescript,foreach,Javascript,Arrays,Angular,Typescript,Foreach,我有一个api响应,返回以下内容: { "code": 0, "message": "hierarchy list", "payload": [ { "id": 2, "name": "nameParent", "code": "WUcw", "childsOfPayload": [ { "id": 5, "name": "NameChild1", "code": "ozyW", "status": "Active",
{
"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,
},
]}]}]}
manipulateDataa() {
this.values.subscribe(x => {
x.payload.foreach((y:any) => {
y.childs.foreach((z:any) => {
console.log( z.name)
})
})
})
}
我正在尝试获取每个childs、ChildOfPayload和childOfChildOfpayload中的不同对象
manipulateDataa() {
this.values.subscribe(x => {
x.payload.foreach((y:any) => {
y.childs.foreach((z:any) => {
console.log( z.name)
})
})
})
}
首先,我返回了负载的不同名称值:
getAllPayloadName() {
this.userService.getName().subscribe(
data => {
this.values= data;
}
);
manipulateDataa() {
this.values.subscribe(x => {
x.payload.foreach((y:any) => {
y.childs.foreach((z:any) => {
console.log( z.name)
})
})
})
}
}
manipulateDataa() {
this.values.subscribe(x => {
x.payload.foreach((y:any) => {
y.childs.foreach((z:any) => {
console.log( z.name)
})
})
})
}
但是我必须做些什么才能使每个子项的名称与不同的父项值关联
manipulateDataa() {
this.values.subscribe(x => {
x.payload.foreach((y:any) => {
y.childs.foreach((z:any) => {
console.log( z.name)
})
})
})
}
我是说在这种情况下
NameChild1
NameChild2
manipulateDataa() {
this.values.subscribe(x => {
x.payload.foreach((y:any) => {
y.childs.foreach((z:any) => {
console.log( z.name)
})
})
})
}
我试过这个:
manipulateDataa() {
this.values.subscribe(x => {
x.payload.foreach((y:any) => {
y.childs.foreach((z:any) => {
console.log( z.name)
})
})
})
}
然后在getAllPayloadName中调用它,但仍然不起作用。可能有什么问题?如果api结果结构为强类型且不会更改,则可以通过此行访问子负载名称
manipulateDataa() {
this.values.subscribe(x => {
x.payload.foreach((y:any) => {
y.childs.foreach((z:any) => {
console.log( z.name)
})
})
})
}
console.log(JSON.stringify(obj.payload[0].childsOfPayload[0].name));
console.log(JSON.stringify(obj.payload[0].childsOfPayload[0].childsofChildOfPayload[0].name));
您可以这样做以获得所需的输出。您可以阅读更多关于我使用的forEach循环的信息。
数据={
“代码”:0,
“消息”:“层次结构列表”,
“有效载荷”:[
{
“id”:2,
“名称”:“名称父项”,
“代码”:“WUcw”,
“儿童基金会”:[
{
“id”:5,
“姓名”:“NameChild1”,
“代码”:“ozyW”,
“状态”:“活动”,
“支付费用的子女”:[
{
“id”:8,
“姓名”:“NameChild2”,
“代码”:“aitq”,
“命令”:30,
},
]}]}]}
名称=[]
函数迭代器(obj,namesArr){
Object.keys(obj.forEach)(key=>{
如果(键==“名称”){
namesArr.push(对象[键])
}else if(对象的类型[键]=“对象”){
迭代器(obj[key][0],名称)
}
})
}
迭代器(data.payload[0],名称)
console.log(名称)
谢谢。但是我很抱歉,这不是我想要的输出,我想要每个名称的父项及其关联的子项名称。@G.Ab请在输出中发布您期望的内容。我想要类似这样的内容:console.log(“父项名称”+父项名称+“it'schild”+其子项名称的值(这里类似于示例,NameChild1)+“谁有子项”+第二个子项的名称值(NameChild2)…并且,每次我添加另一个具有不同子项的父项名称时,我必须有一个输出,该输出将为我提供具有其子项值的父项。。