javascript - 通过键合并对象的映射和数组
问题描述
我有下一张地图:
const filter = new Map();
filter.set('a1', {
Day: 55,
Type: 1,
});
filter.set('a2', {
Day: 2,
Type: 3,
});
下一个数组:
Data = [
{
points: 1,
event: 'a1',
},
{
points: 2,
event: 'a2',
},
]
我是 JS 的新手,所以我不清楚,如何通过event
参数合并这些?预期的输出应该是 Map:
result = ['a1',
{
points: 1,
Day: 55,
Type: 1,
}],
['a2',
{
points: 2,
Day: 2,
Type: 3,
}],
解决方案
你不需要reduce
这里。更好地使用
带有 es6 扩展运算符的map...
进行合并,
const filter = new Map();
filter.set('a1', {
Day: 55,
Type: 1,
});
filter.set('a2', {
Day: 2,
Type: 3,
});
const Data = [{
points: 1,
event: 'a1',
},
{
points: 2,
event: 'a2',
},
]
const result = Data.map(o => [o.event, {
points: o.points,
...filter.get(o.event)
}]);
console.log(result);
推荐阅读
- assembly - 在 mips mars 组件中加倍浮动
- angular - 带下拉菜单的角垫表内联过滤器
- r - 将列中以冒号分隔的字符串拆分为 R 中的不同列
- html - Flex 包裹儿童
- android - Android - 从数据库中加载数据一次
- python - Python 无法比较最大公约数的值
- c# - 在 C# .NetCore 中使用 rest API 时未定义的值
- android - 需要有关如何在我的应用程序中获取其他 android 应用程序的详细信息的信息
- powershell - 获取 WinEvent powershell 。-包含与-匹配
- symfony - EasyAdmin 中的用户密码管理