根据JavaScript中的标记确定排名

问题

我们需要编写一个JavaScript函数,该函数将数字数组arr作为唯一参数。

该数组基本上由一些学生打分而成的分数组成,基于分数数组,我们的函数应准备并返回一个等级数组,该数组应根据他们的分数在分数数组中的高低来包含相应学生的排名到达

例如,对于数组arr中的最高条目,输出数组中的对应条目应为1、2以表示第二高的条目,依此类推。

例如,如果函数的输入为-

const arr = [50, 47, 39, 32, 31];

那么输出应该是-

const output = [1, 2, 3, 4, 5];

输出说明:

数组arr中的标记已经按照降序排列,这意味着最高的标记位于第一个索引处,依此类推。

示例

为此的代码将是-

const arr = [50, 47, 39, 32, 31];
const findRanks = (arr = []) => {
   const { length } = arr;
   let sortArray = arr.slice();
   sortArray.sort((a,b) => b - a);
   const result = [];
   for(let i = 0; i < length; i++){
      const j = sortArray.indexOf(arr[i])
      result.push(j + 1);
   }
   return result;
};
console.log(findRanks(arr));
输出结果

控制台中的输出将是-

[ 1, 2, 3, 4, 5 ]