30秒学会 JavaScript 片段 · 2023年1月2日

30秒学会 JavaScript 片段 – Array ranking

Calculates the ranking of an array based on a comparator function.

  • Use Array.prototype.map() and Array.prototype.filter() to map each element to a rank using the provided comparator function.

代码实现

const ranking = (arr, compFn) =>
  arr.map(a => arr.filter(b => compFn(a, b)).length + 1);

ranking([8, 6, 9, 5], (a, b) => a < b);
// [2, 3, 1, 4]
ranking(['c', 'a', 'b', 'd'], (a, b) => a.localeCompare(b) > 0);
// [3, 1, 2, 4]

翻译自:https://www.30secondsofcode.org/js/s/array-ranking