[英]Ramda Groupby with array of arrays
我有类似下面的数据
[
['A', 'B', 'C', 'D', 'E'],
['A', 'F', 'C', 'D', 'E'],
['A', 'B', 'C1', 'D1', 'E1'],
['A', 'F', 'C1', 'D1', 'E1'],
]
如果我用第一个索引从 ramda 分组,它会给出如下所示的内容
cosnt groupdByRows = R.groupBy((row) => row[1], rows)
{
B: [[A,B,C,D,E]]
F: [[A,F,C,D,E]]
}
我希望结果包括重复的行以及如下所示
{
B: [[A,B,C,D,E], [A,B,C1,D1,E1]]
F: [[A,F,C,D,E],[A,F,C1,D1,E1] ]
}
我如何使用 Ramda 实现这一目标?
我不喜欢 rambda,因为它的类型有缺陷并且 package 大小不好。
所以这是 fnxt 实现
npm i fnxt
和:
import {groupBy, map} from 'fnxt/array';
import {pipe} from 'fnxt/pipe';
let x = [
['A', 'B', 'C', 'D', 'E'],
['A', 'F', 'C', 'D', 'E'],
['A', 'B', 'C1', 'D1', 'E1'],
['A', 'F', 'C1', 'D1', 'E1'],
];
let result = pipe(
groupBy((e:string[]) => e[1]),
map((e)=> [e[0][1],e]),
Object.fromEntries
)(x);
console.log(result)
//{
// B: [ [ 'A', 'B', 'C', 'D', 'E' ], [ 'A', 'B', 'C1', 'D1', 'E1' ] ],
// F: [ [ 'A', 'F', 'C', 'D', 'E' ], [ 'A', 'F', 'C1', 'D1', 'E1' ] ]
//}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.