javascript - 如何修改服务调用的数据响应

标签 javascript json angular angular6

我正在寻找格式化从服务调用中收到的数据。我从服务调用收到的数据的格式如下:

{
    path: "Protocols/abc Protocols",
    protocols: [
    {
    id: {
    name: "Dynamic abc",
    path1: "Protocols/abc Protocols/abc",
    path2: "Protocols/abc Protocols/abc2",
    path3: "Protocols/abc Protocols/abc3",
    summary: "Provides abc..... "
    }
    },
    {
    id: {
    name: "Dynamic def",
    path1: "Protocols/def Protocols/def ",
    path2: "Protocols/def Protocols/def2",
    path3: "Protocols/def Protocols/def3",
    summary: "Provides def..... "
    }
    },
    {
    id: {
    name: "Dynamic efg",
    path1: "Protocols/def Protocols/efg ",
    path2: "Protocols/def Protocols/efg2",
    path3: "Protocols/def Protocols/efg3",
    }
    }
    ]
    }

对于此数据,我的数据模型采用以下格式:

path: string;
  protocols: [
  {
    id: 
    {
    name: string,
    path1: string,
    path2: string,
    path3: string,
    }
  }
  ]

我想删除响应的“id”部分,使数据模型采用以下格式:

 path: string;
          protocols: [
            {
              name: string,
              path1: string,
              path2: string,
              path3: string,
            },
            {
              name: string,
              path1: string,
              path2: string,
              path3: string,
            }
          ]

我正在尝试创建数组并将每个 id{} 内的所有内容推送到数组的标准方法。

for (let i = 0; i < result.protocols.length; i++) {
                finalResult.push(result.protocols[i].id);
    }

有没有更好的方法来实现?我是一名业余 Angular6 开发人员。需要帮助吗?

最佳答案

您可以映射协议(protocol)数组并简单地返回较低的嵌套对象,而不是包含 id 的较高级别

data.protocols = data.protocols.map(i => i.id);

var data={path:"Protocols/abc Protocols",protocols:[{id:{name:"Dynamic abc",path1:"Protocols/abc Protocols/abc",path2:"Protocols/abc Protocols/abc2",path3:"Protocols/abc Protocols/abc3",summary:"Provides abc..... "}},{id:{name:"Dynamic def",path1:"Protocols/def Protocols/def ",path2:"Protocols/def Protocols/def2",path3:"Protocols/def Protocols/def3",summary:"Provides def..... "}},{id:{name:"Dynamic efg",path1:"Protocols/def Protocols/efg ",path2:"Protocols/def Protocols/efg2",path3:"Protocols/def Protocols/efg3"}}]};
data.protocols = data.protocols.map(i => i.id);
console.log(data);

关于javascript - 如何修改服务调用的数据响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53548633/

相关文章:

php - 使用 jQuery Mobile 和 Phonegap 加载 JSON?

css - Angular Material 自动完成结果列表显示在模态后面?

javascript - 无法使用来自 Angular2 Dart 应用程序的 CSS(CSS 垫片)

JavaScript 域从子域读取 cookie

javascript - Angular.copy 更改引用

json - 使用 Decoder swift 嵌套 JSON 时出错

typescript - Angular2 合并可观察对象

javascript - document.location 或 window.location.href 在条件的 if 部分不起作用,但在 else 部分起作用

javascript - 禁用javascript时禁用提交按钮

javascript - 使用 XUL 和 JS 将插件写入 Firefox