Vấn đề
Cần viết hàm JS nhận mảng arr điểm số học sinh. Trả về mảng xếp hạng tương ứng: điểm cao nhất -> hạng 1, thứ hai -> hạng 2, ...
Ví dụ:
const arr = [50, 47, 39, 32, 31];
Kết quả:
const output = [1, 2, 3, 4, 5];
Giải thích:
Mảng điểm đã sắp xếp giảm dần, nên hạng tương ứng là 1,2,3,4,5.
Ví dụ
Mã thực hiện:
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));
Kết quả
Kết quả in ra console:
[ 1, 2, 3, 4, 5 ]