javascript - 给定值数组时从 json 中提取单个属性

标签 javascript typescript lodash

当提供了 ids 数组时,我们如何从 json 中检索名称。

[
   {
      "id": 0,
      "name": "salesTransNo"
   },
   {
      "id": 1,
      "name": "terminalNo"
   },
   {
      "id": 2,
      "name": "salesTransDate"
   },
   {
      "id": 3,
      "name": "salesTransTime"
   },
   {
      "id": 4,
      "name": "exceptionAmount"
   },
   {
      "id": 5,
      "name": "laneNumber"
   }
]

当给定 id 值数组时,我只想从 JSON 检索名称到数组中

例如:id 数组:[2,4,5]

输出应该是:

["salesTransDate","exceptionAmount","LaneNumber"]

我们如何使用 Lodash 或 JavaScript 来实现这一目标?

我使用 _.find 并使用 _.map 从结果中仅提取名称,但如果我要传递数组,它仅适用于单个值像 [2,4,5] 一样它不起作用。

最佳答案

您可以过滤对象,然后映射所需的属性。

var data = [{ id: 0, name: "salesTransNo" }, { id: 1, name: "terminalNo" }, { id: 2, name: "salesTransDate" }, { id: 3, name: "salesTransTime" }, { id: 4, name: "exceptionAmount" }, { id: 5, name: "laneNumber" }],
    ids = [2, 4, 5],
    result = data
        .filter(({ id }) => ids.includes(id))
        .map(({ name }) => name);

console.log(result);

关于javascript - 给定值数组时从 json 中提取单个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46371982/

相关文章:

javascript - 如何格式化 JSON 对象数组 (Javascript)

javascript - 多次使用不同的值开 Jest 模拟模块

javascript - 如何在一次rotate3d()调用上应用多个轴旋转?

typescript - 具有枚举类型问题的 Ngrx 操作

typescript - 模块的所有接口(interface)和类型声明都应该放在一个文件中吗?

reactjs - 如何使用带有 material-ui 样式组件 API (Typescript) 的自定义 Prop 和主题?

javascript - 将 lodash every() 函数作为参数传递给 Rx.JS map() 运算符

ReactJS 组件渲染顺序错误

javascript - 如何创建一个允许用户后退的按钮?

javascript - 只要求用户正确答案 5 次的简单 JavaScript 函数?