RxJs Возможно ли решить эту проблему сводной таблицы - PullRequest
1 голос
/ 22 октября 2019

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

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

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

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

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

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

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

Обновление

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

Pivot table result

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

1 Ответ

2 голосов
/ 22 октября 2019

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

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
},[]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...