lyo*_*ipt 0 javascript rxjs ecmascript-6 angular
我知道使用rxjs在Angular中对数组进行计数,例如,如果我想要count:[{id: 1, items: [10, 20, 30]}]我使用以下代码:
const item = from([{id: 1, items: [10, 20, 30]}]);
item.pipe(
map(actions => actions.items),
mergeAll(),
reduce((acc, i) => acc + i, 0)
).subscribe(p => console.log('Print 60: ', p));
Run Code Online (Sandbox Code Playgroud)
问题是如何获得以下阵列的减速器:
const items = [
{
id: 1,
boxing: [1, 2, 2]
},
{
id: 2,
boxing: [10, 10, 20]
}];
Run Code Online (Sandbox Code Playgroud)
预期结果:
[{
id: 1,
boxing: 5
},
{
id: 2,
boxing: 40
}]
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助
您可以通过使用与JavaScript很容易做到这一点reduce,并map为
const items = [
{id: 1, boxing: [1, 2, 2]},
{id: 2, boxing: [10, 10, 20]}
];
let reducedItems = items.map(val => {
return {
id: val.id,
boxing: val.boxing.reduce((a, i) => a + i)
}
});
console.log(reducedItems);Run Code Online (Sandbox Code Playgroud)