@reactivex/ix-esnext-esm
Version:
The Interactive Extensions for JavaScript
1 lines • 1.12 kB
Source Map (JSON)
{"version":3,"sources":["iterable/operators/_grouping.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAyB,EACzB,WAAqC,EACrC,eAA2C;IAE3C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;QACzB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,QAAQ,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SACxB;QACD,QAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;KACvC;IAED,OAAO,GAAG,CAAC;AACb,CAAC","file":"_grouping.js","sourcesContent":["/**\n * @ignore\n */\nexport function createGrouping<TSource, TKey, TValue>(\n source: Iterable<TSource>,\n keySelector: (value: TSource) => TKey,\n elementSelector: (value: TSource) => TValue\n): Map<TKey, TValue[]> {\n const map = new Map<TKey, TValue[]>();\n for (const item of source) {\n const key = keySelector(item);\n let grouping = map.get(key);\n if (!map.has(key)) {\n grouping = [];\n map.set(key, grouping);\n }\n grouping!.push(elementSelector(item));\n }\n\n return map;\n}\n"]}