1

我是 RxJs 的新手。是否有可能解决这种类型的数据透视表问题。

假设我有一个包含任意数量项目的流。

  • 每个项目都是 0 到 999 之间的数字。

  • 我想从这个流中制作一张桌子。一个有 10 列的表。

  • 项目的列号等于项目除以 10。因此数字 654 将转到第 6 列。

因为我们有随机数量的项目并且因为数字以随机顺序到达,所以列将具有不同的高度。

如何对流进行操作以一一生成表的行以显示表?

更新

使用 Fan Cheung 解决方案(如下所述),很容易使用 RxJs 生成列。但是是否也可以随后使用 RxJs 生成行(行数组)以便能够呈现如下所示的表格?

数据透视表结果

柱子有不同的高度。

4

1 回答 1

2

更像是一个数组问题

items.reduce((acc,curr)=>{
const key=Math.floor(curr/10);
if(!acc[key])
  acc[key]=[]
acc[key].push(curr)
return acc
},[])

然后你应该得到一个数组(列)的数组(行)

如果您有来自流的项目,只需更改为 pipe()

items.pipe(reduce((acc,curr)=>{
const key=Math.floor(curr/10);
if(!acc[key])
  acc[key]=[]
acc[key].push(curr)
return acc
},[]))
于 2019-10-22T07:53:39.890 回答