【问题标题】:Change the JSON structure response更改 JSON 结构响应
【发布时间】:2019-11-17 15:23:51
【问题描述】:

我使用以下代码为项目创建了 json 响应:

this.parts = this.getParts().filter((item) => {
  return item.manufactureId === Number(manufactureId)
  });

它从我的这个 json 中返回部件的 ID:

[{id: 02020013, manufactureId: 0202, name: cable}]

我也尝试使用此代码但无法正常工作:(":

this.parts = this.getParts.filter(p => (p.id == manufactureId))[0].name;

我想要实现的是,响应将解析项目名称而不是 part.id。

【问题讨论】:

  • 您需要调用 getParts 来获取数据并对其进行过滤,而不是过滤函数
  • 嗨@jro,你能举个例子吗?或更详细?提前感谢
  • 你能解释一下你想要达到什么目标吗?
  • 嗨@MantasČekanauskas,目前我的脚本只会给出响应部分ID号(02020013),我想要做的是响应只会给出部分名称值
  • 看来我的评论和答案中指出的错误只是代码中的错字。请更新您的问题以反映您实际尝试的代码

标签: javascript arrays json return return-value


【解决方案1】:

正如 cmets 中所指出的,您可以将最后一个代码位更改为

this.parts = this.getParts().filter(p => (p.manufactureId == manufactureId))[0].name;

您缺少括号来调用函数。您可能需要按manufactureId 过滤,而不是id

您也可以在通过manufactureId 过滤数据后使用map 函数。 map 函数对每个数组元素应用函数并返回结果,在此示例中,它简单地从对象中获取 name,因为 manufactureId 可能有多个(或没有)项目。

this.parts = this.getParts().filter((item) => {
    return item.manufactureId === Number(manufactureId)
}).map((item) => item.name);

【讨论】:

    猜你喜欢
    • 2017-03-08
    • 2019-10-20
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2021-10-01
    相关资源
    最近更新 更多