Saya mengerti bahwa untuk menghitung array di Angular dengan rxjs saya menggunakan pengurangan, misalnya jika saya ingin menghitung : [{id: 1, items: [10, 20, 30]}] saya menggunakan kode berikut:

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)); 

Pertanyaannya adalah Bagaimana cara membuat peredam dalam array berikut:

const items = [
{
  id: 1,
  boxing: [1, 2, 2]
},
{
  id: 2,
  boxing: [10, 10, 20]
}]; 

Hasil yang diharapkan:

[{
  id: 1,
  boxing: 5
},
{
  id: 2,
  boxing: 40
}]

Saya akan menghargai bantuan anda

0
lyonTypescript 4 Juni 2019, 05:35

1 menjawab

Salah satu pendekatan bisa ini.

from(items).pipe(
  mergeMap((data) => from(data['boxing']).pipe(
    reduce((acc, x) => acc + x),
    map((val) => { data['boxing'] = val; return data })
  )),
  toArray()
).subscribe((val) => console.log(val));
1
emkay 4 Juni 2019, 03:27