javascript - Javascript 映射数组并合并到一个对象
问题描述
我有以下 Firebase 功能
this.sensorService.getTest()
.snapshotChanges()
.pipe(
map(actions =>
actions.map(a => ({
[a.payload.key]: a.payload.val()
})))
).subscribe(sensors => {
this.sensors = sensors;
console.log(this.sensors);
});
它现在将数据返回到不同的数组,console.log 显示如下:
0: {groups: Array(8)}1: {links: Array(35)}2: {nodes: Array(35)}
如何将所有这些数组合并在一起并将它们全部放在一个对象中?Console.log 应该返回:
{groups: Array(8), nodes: Array(35), links: Array(35)}
解决方案
而不是map
你可以reduce
这样使用:
actions.reduce((acc, a) => {
acc[a.payload.key] = a.payload.val();
return acc;
}, {})
推荐阅读
- node.js - Express 应用程序有一个 API(路由),它获取完整的出生日期并返回年龄,但它返回一个空对象
- html - CSS 网格:在小型设备上,卡片不会显示在网格框内
- python - 如何使用python找到素数
- sql - 在 SQL Server (T-SQL) 中删除表的权限
- html - 无需媒体查询即可转换为单列的四列布局
- linux - 为什么用(ps -f&)显示进程信息,然后显示1的PPID而不是主shell的PID(-bash)?
- c++ - 使用 cmake 在 c++ 中包含库
- android - 获取实时数据的价值
- python-2.7 - 如何从具有不同长度和公共列的不同数据帧创建字典?
- rule-engine - 使用 PostgreSQL 创建 ProcessEngine 时出现异常