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.
17 lines
406 B
TypeScript
17 lines
406 B
TypeScript
function ranked<T>(diter: T[], equ = (a: T, b: T) => a === b): [number, T][] {
|
|
let last = null;
|
|
let r = 0;
|
|
let count = 0;
|
|
const results: [number, T][] = [];
|
|
for (const doc of diter) {
|
|
count++;
|
|
if (count === 1 || !equ(last, doc)) r = count;
|
|
last = doc;
|
|
results.push([r, doc]);
|
|
}
|
|
return results;
|
|
}
|
|
|
|
global.Hydro.lib.rank = ranked;
|
|
export = ranked;
|