在 JavaScript 中根据分数确定排名

javascriptweb developmentfront end technology

问题

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

该数组基本上由一些学生获得的分数组成,根据分数数组,我们的函数应准备并返回一个排名数组,该数组应包含相应学生的排名,排名基于他们的分数数组 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 ]

相关文章