基于 JavaScript 分数确定排名


问题

我们需要编写一个 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 ]

更新于: 2021-03-03

745 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告