pub fn rollup<T, K, V, F, R>(data: &[T], key: F, reduce: R) -> HashMap<K, V>Expand description
Groups elements and applies a reducer to each group.
ยงExample
use d3rs::array::rollup;
let data = vec![
("A", 10),
("B", 20),
("A", 30),
("B", 40),
];
let sums = rollup(&data, |item| item.0, |group| {
group.iter().map(|item| item.1).sum::<i32>()
});
assert_eq!(sums[&"A"], 40);
assert_eq!(sums[&"B"], 60);