数组中的角令减速器

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)

感谢您的帮助

Sak*_*ham 6

您可以通过使用与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)

  • https://stackblitz.com/edit/rxjs-cxhrt9只是在管道map()中应用@Saksham示例的一个小示例 (2认同)