【发布时间】:2021-10-31 15:35:55
【问题描述】:
如何通过 .map 为同一个数组创建两个相同的对象?
有如下数据集:
data = [
{initiatorRole: "dispatch", receiverRole: "police"},
{initiatorRole: "dispatch", receiverRole: "fire"},
{initiatorRole: "police", receiverRole: "dispatch"}
]
我想将它们放入一组对象中,我将在其中删除重复项并添加其他数据。
roles = [
{role: "dispatch"},
{role: "police"},
{role: "dispatch",
{role: "fire"},
{role: "police"},
{role: "dispatch"}
]
我目前拥有的代码:
roles = data.map(d => {
let rObj = {}
rObj["id"] = d.initiatorRole
rObj["id"] = d.receiverRole
return rObj;
});
当然,这只是返回最后一个 rObj 集。这可以通过一次地图调用来完成吗?
【问题讨论】:
-
所以...也许吧,因为作为一名初级编码员,我不这么认为。那么你的回答可能是下面的答案......“我不会使用.map,我会以这种方式使用.reduce......就像那个回答它的人一样。
-
看起来这里有很多类似问题的答案:stackoverflow.com/questions/46986710/…顺便说一句,我调整了你的标题,主要是为了删除“Observable”,因为它可能会混淆未来的搜索者(我认为这是一个好问题对于任何类型的 JavaScript),并在您的代码示例中修复了几个引号。很高兴我的回答有帮助,干杯!
-
@Toph 虽然我最初并没有考虑 dups,但有趣的是,我想知道如何返回多个对象。这就是问题所在。您的笔记本提供了令人难以置信的学习体验,让您可以耐心地了解已提出和未提出的问题。
标签: javascript array.prototype.map observablehq