RxJs Можно ли решить такую ​​проблему со сводной таблицей?

Я новичок в RxJs. Возможно ли решить этот тип проблемы сводной таблицы.

Предположим, у меня есть поток с любым количеством элементов.

  • Каждый элемент представляет собой число от 0 до 999.

  • Я хочу сделать из этого потока таблицу. Таблица с 10 столбцами.

  • Номер столбца для элемента равен номеру элемента, разделенному на 10. Таким образом, номер 654 перейдет в столбец 6.

Поскольку у нас есть случайное количество элементов и поскольку числа поступают в случайном порядке, столбцы будут иметь разную высоту.

Как я могу работать с потоком, чтобы генерировать строки таблицы одну за другой для отображения таблицы?

Обновить

С помощью решения Fan Cheung (описанного ниже) было легко создавать столбцы с RxJ. Но можно ли впоследствии сгенерировать строки (массив строк) с помощью RxJs, чтобы иметь возможность отображать таблицу, как показано ниже?

Колонны имеют разную высоту.

1 ответ

Решение

Больше похоже на вопрос о массиве

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
},[]))
Другие вопросы по тегам