Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 마크를 기반으로 순위 결정

<시간/>

문제

숫자 배열, arr를 유일한 인수로 취하는 JavaScript 함수를 작성해야 합니다.

배열은 기본적으로 일부 학생이 채점한 점수로 구성되며, 점수 배열을 기반으로 하며, 우리 함수는 점수 배열에서 해당 학생의 점수가 얼마나 높은지에 따라 해당 학생의 순위를 포함해야 하는 순위 배열을 준비하고 반환해야 합니다. 아.

예를 들어, 배열 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 ]