Rxjs GroupBy,减少,以便在ID上旋转

Rxjs GroupBy,减少,以便在ID上旋转,rxjs,Rxjs,我正在寻找一些帮助来理解这个来自rxjs的示例 我发现我们现在有三个分组的观测值(对于3个ID),它们实际上是发射对象的阵列。对于每个分组的可观察对象,此代码的目的是将其简化为一个数组,其中数组中的第一个条目是键,数组中的后续条目是名称 但是为什么reduce函数是用[“”+group$.key]初始化的,而不仅仅是[group$.key] 为什么每次迭代返回缩减数组时都要使用三点符号[…acc,cur] 但是为什么reduce函数是用[“”+group$.key]初始化的,而不仅仅是[grou

我正在寻找一些帮助来理解这个来自rxjs的示例

我发现我们现在有三个分组的观测值(对于3个ID),它们实际上是发射对象的阵列。对于每个分组的可观察对象,此代码的目的是将其简化为一个数组,其中数组中的第一个条目是键,数组中的后续条目是名称

但是为什么reduce函数是用
[“”+group$.key]
初始化的,而不仅仅是
[group$.key]

为什么每次迭代返回缩减数组时都要使用三点符号
[…acc,cur]

但是为什么reduce函数是用
[“”+group$.key]
初始化的,而不仅仅是
[group$.key]

回答这个问题的线索在代码中稍靠下的
.map()
函数中

.map(arr => ({'id': parseInt(arr[0]), 'values': arr.slice(1)}))
                    ^^^^^^^^
请注意使用
parseInt
。如果没有
平面图中的
“”+
,这将无法编译,因为您将向需要
字符串的函数传递数字类型。删除
parseInt
,只需使用
arr[0]
,您也可以删除
“”+

为什么返回时使用三点符号
[…acc,cur]
每次迭代时减少的数组

here用于在不改变数组的情况下添加到数组中。但是它有什么作用呢?它将复制原始数组,从数组中取出所有现有元素,并将元素放入新数组中。简单地说,获取
acc
中的所有元素,最后使用
cur
将它们复制到一个新数组中

但是为什么reduce函数是用
[“”+group$.key]
初始化的,而不仅仅是
[group$.key]

回答这个问题的线索在代码中稍靠下的
.map()
函数中

.map(arr => ({'id': parseInt(arr[0]), 'values': arr.slice(1)}))
                    ^^^^^^^^
请注意使用
parseInt
。如果没有
平面图中的
“”+
,这将无法编译,因为您将向需要
字符串的函数传递数字类型。删除
parseInt
,只需使用
arr[0]
,您也可以删除
“”+

为什么返回时使用三点符号
[…acc,cur]
每次迭代时减少的数组


here用于在不改变数组的情况下添加到数组中。但是它有什么作用呢?它将复制原始数组,从数组中取出所有现有元素,并将元素放入新数组中。简单地说,获取
acc
中的所有元素,最后使用
cur
将它们复制到一个新数组中

太好了,那很有帮助,谢谢。把数字转换成一个字符串,然后再转换回来似乎毫无意义,这让我很困惑。我以前没见过spread操作员。我会读的。太好了,这很有帮助,谢谢。把数字转换成一个字符串,然后再转换回来似乎毫无意义,这让我很困惑。我以前没见过spread操作员。我来读。
.map(arr => ({'id': parseInt(arr[0]), 'values': arr.slice(1)}))
                    ^^^^^^^^