我有以下firebase函数
^.\\d*[.,]?\\d{0,' + maxDecimalDigits + '}?$
它现在将数据返回到不同的阵列,console.log显示如下:
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)}
答案 0 :(得分:1)
您可以像这样使用map
来代替reduce
:
actions.reduce((acc, a) => {
acc[a.payload.key] = a.payload.val();
return acc;
}, {})
答案 1 :(得分:0)
输入以下内容:
const values = {
0: { groups: Array(8) },
1: { links: Array(35) },
2: { nodes: Array(35) }
};
您可以使用Object.values()
作为数组检索值,并使用destructured assignment将数组归约为对象:
Object.values(values).reduce((acc, val) => ({ ...acc, ...val }), {})