【问题标题】:how to use filter and map to alter object如何使用过滤器和映射来改变对象
【发布时间】:2021-07-09 14:10:22
【问题描述】:

如何使用 map 和 filter 修改现有对象。下面我给出了两个对象和需要的输出。

let a = [
  { a: "hi", b: 0 },
  { a: "bye", b: 1 },
  { a: "seeyou", b: 2 },
];
let b = { hi: "22:00", bye: "20:00", seeyou: "12:00" };

这里我需要像下面这样的响应

c = [
  { a: "hi", b: 0, time: "22:00" },
  { a: "bye", b: 1, time: "20:00" },
  { a: "seeyou", b: 2, time: "12:00" },
];

如何使用映射和过滤器将对象a 修改为c

【问题讨论】:

  • Array.prototype.map()Array.prototype.filter()就地改变初始数组,因此无法实现您的要求。这是XY Problem
  • 你试过什么?您已经知道必须使用.map.filter 之类的方法。请展示你的尝试。
  • @Quentin 你的想法是创建一篇关于“我想将我非常具体的数据格式转换成另一种非常具体的数据格式”的帖子/wiki,听起来每天都更好
  • @PavanK Stackoverflow 的重点不是“我有这个输入,我想要这个输出,请给我代码。”你应该展示你尝试过的东西,所以我们可以帮助你,而不是开发你的应用程序。

标签: javascript node.js arrays


【解决方案1】:

您只想得到预期的结果吗?

如果是这样,下面的示例

let a = [
  { a: "hi", b: 0 },
  { a: "bye", b: 1 },
  { a: "seeyou", b: 2 },
];
let b = { hi: "22:00", bye: "20:00", seeyou: "12:00" };

const output = a.map(el => ({
  ...el,
  time: b[el.a],
}));

console.log(output);

【讨论】:

  • 谢谢...actullay我已经更新了我的查询..你能检查一下吗
  • @PavanK,你不需要使用 filter() 。查看我的更新答案。
猜你喜欢
  • 2015-10-20
  • 2020-06-27
  • 2019-09-29
  • 2022-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-26
  • 1970-01-01
相关资源
最近更新 更多