如何从 api 响应迭代复杂对象

问题描述

这是一个 api 响应,我想迭代响应中的所有 appIduserInfo。我如何迭代这个响应?

{
    "status_code": "SUCCESS","status": "SUCCESS","message": "Success","data": [
        {
            "_id": "6034acaaf751f1c89721a76b","status": "active","name": "testname","collectionStatus": "completed","createdDate": 1614064810201,"subscriberStats": [],"platforms": [
                {
                    "_id": "6034acaa47a83e45b3f5fc4a","traffic": 0,"parentStatus": "active","platformType": "website","appId": "xxx","optinShowInterval": 0,"optInFrequencyType": "page_refresh","webType": "wordpress","optInFrequency": 0,"userId": "xxx","createdDate": 1614064810563
                }
            ]
        },{
            "_id": "600ae310255964c2e21a580f","name": "trial","createdDate": 1611326224761,"platforms": [
                {
                    "_id": "600ae31163d6d321f4693d1d","createdDate": 1611326225013
                }
            ]
        }
    ]
}

结果输出应该是一个对象数组,例如:

[
   {appId: "",userInfo: ""},{appId: "",userInfo: ""}
]

解决方法

尝试添加一些循环:

const result = [];
for (const a in response) {
  for (const b of response[a]) {
    result.push({
      appId: b._id,userInfo: b.parentStatus // or some other properties
    })
  }
}

console.log(result)
,

appId 和 usetId 嵌套在平台数组中的对象深处 您可以使用以下代码访问它们

const res = {
  status_code: "SUCCESS",status: "SUCCESS",message: "Success",data: [
    {
      _id: "6034acaaf751f1c89721a76b",status: "active",name: "testname",collectionStatus: "completed",createdDate: 1614064810201,subscriberStats: [],platforms: [
        {
          _id: "6034acaa47a83e45b3f5fc4a",traffic: 0,parentStatus: "active",platformType: "website",appId: "xxx",optinShowInterval: 0,optInFrequencyType: "page_refresh",webType: "wordpress",optInFrequency: 0,userId: "xxx",createdDate: 1614064810563,},],{
      _id: "600ae310255964c2e21a580f",name: "trial",createdDate: 1611326224761,platforms: [
        {
          _id: "600ae31163d6d321f4693d1d",createdDate: 1611326225013,};

const output = res.data.map((obj) => {
  return { appId: obj.platforms[0].appId,userId: obj.platforms[0].userId };
});

console.log(output);