Computer >> Máy Tính >  >> Lập trình >> Javascript

Xác định thứ hạng trên cơ sở các điểm trong JavaScript

Vấn đề

Chúng tôi bắt buộc phải viết một hàm JavaScript lấy một mảng, arr, các số làm đối số duy nhất.

Về cơ bản mảng bao gồm các điểm do một số sinh viên ghi được, dựa trên mảng điểm, hàm của chúng ta sẽ chuẩn bị và trả về một mảng xếp hạng chứa thứ hạng của các sinh viên tương ứng trên cơ sở điểm của họ cao như thế nào trong mảng điểm. arr.

Ví dụ:đối với mục nhập cao nhất trong mảng arr, mục nhập tương ứng trong mảng đầu ra phải là 1, 2 đối với mục cao thứ hai, v.v.

Ví dụ:nếu đầu vào của hàm là -

const arr = [50, 47, 39, 32, 31];

Sau đó, đầu ra phải là -

const output = [1, 2, 3, 4, 5];

Giải thích đầu ra:

Các dấu trong mảng arr đã được đặt theo thứ tự giảm dần, có nghĩa là các dấu cao nhất nằm ở chỉ mục đầu tiên, v.v.

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[ 1, 2, 3, 4, 5 ]