可将单个元素归入多组的multi-group-by函数是否有通用名称?
多分组元素归类工具相关问题
需求描述
需要一种工具,可将单个元素归入多个分组。举个例子:
输入示例
[ { name: "x", groups: ["a", "b"] }, { name: "y", groups: ["a"] }, { name: "z", groups: ["b"] } ]
输出示例
{ a: [ { name: "x", groups: ["a", "b"] }, { name: "y", groups: ["a"] } ], b: [ { name: "x", groups: ["a", "b"] }, { name: "z", groups: ["b"] } ] }
想了解是否有编程语言的标准库提供此类工具,若有,其通用名称是什么?
JavaScript 实现方案
如果上述示例还没明确需求,以下是一种JavaScript实现方式:
const multiGroupBy = (items, callbackFn) => Object.fromEntries( Object.entries( Object.groupBy( items.flatMap((item) => callbackFn(item).map((group) => [group, item])), ([group, _]) => group, ), ).map(([group, items]) => [group, items.map(([_, item]) => item)]), )
内容的提问来源于stack exchange,提问作者Isti115
相关产品推荐
相关产品推荐

