You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hydro/packages/hydrooj/src/lib/rank.ts

17 lines
406 B
TypeScript

function ranked<T>(diter: T[], equ = (a: T, b: T) => a === b): [number, T][] {
5 years ago
let last = null;
let r = 0;
let count = 0;
const results: [number, T][] = [];
5 years ago
for (const doc of diter) {
count++;
5 years ago
if (count === 1 || !equ(last, doc)) r = count;
last = doc;
results.push([r, doc]);
}
return results;
}
global.Hydro.lib.rank = ranked;
export = ranked;