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