基於 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 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.