基于 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 ]
广告