UNPKG

1.69 kBSource Map (JSON)View Raw
1{"version":3,"sources":["iterable/_extremaby.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CACvB,MAAyB,EACzB,QAAiC,EACjC,QAA6C;IAE7C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,IAAI,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IAED,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnB,IAAI,IAA6B,CAAC;IAClC,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAElC,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACtB;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE;YAClB,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,MAAM,GAAG,GAAG,CAAC;SACd;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","file":"_extremaby.js","sourcesContent":["export function extremaBy<TSource, TKey>(\n source: Iterable<TSource>,\n selector: (item: TSource) => TKey,\n comparer: (left: TKey, right: TKey) => number\n): TSource[] {\n let result = [];\n const it = source[Symbol.iterator]();\n const { value, done } = it.next();\n if (done) {\n throw new Error('Sequence contains no elements');\n }\n\n let resKey = selector(value);\n result.push(value);\n\n let next: IteratorResult<TSource>;\n while (!(next = it.next()).done) {\n const current = next.value;\n const key = selector(current);\n const cmp = comparer(key, resKey);\n\n if (cmp === 0) {\n result.push(current);\n } else if (cmp > 0) {\n result = [current];\n resKey = key;\n }\n }\n\n return result;\n}\n"]}
\No newline at end of file