数组中的可观察数组,数字总和?

时间:2018-03-01 21:26:06

标签: angular rxjs observable reduce subscribe

我有一个可能有嵌套数组的数组。我想总结父母内部的所有数字,无论有多少孩子'阵列在那里。

为什么它没有这样工作。其他人抱怨acc1是一个阵列,这是正常的,但仍然是,这种方法的问题是什么?

Observable.from([1, 2, 3, [ 1, 2, 3, 4]])
    .map(x => x)
    .reduce((acc1, y) => {
      if (Array.isArray(y)) {
        return (y.reduce((acc2, x) => acc2 + x));
      } else {
        return acc1 + y;
      }
    })
    .subscribe(res => console.log(res))

结果应为16

1 个答案:

答案 0 :(得分:2)

你非常接近:

Observable.from([1, 2, 3, [ 1, 2, 3, 4]])
    .map(x => x)
    .reduce((acc1, y) => {
      if (Array.isArray(y)) {
        return acc1 + (y.reduce((acc2, x) => acc2 + x)); // just add acc1 to your reduced array
      } else {
        return acc1 + y;
      }
    })
    .subscribe(res => console.log(res))