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

JavaScript에서 배열 내에서 세 번째 최대 수 찾기

<시간/>

숫자 배열을 첫 번째이자 유일한 인수로 사용하는 JavaScript 함수를 작성해야 합니다.

우리 함수의 임무는 배열에서 세 번째 최대 숫자를 선택하여 반환하는 것입니다. 배열에 세 번째 최대 숫자가 포함되어 있지 않으면 배열에서 최대 숫자를 반환하기만 하면 됩니다.

예를 들어 -

입력 배열이 -

인 경우
const arr = [34, 67, 31, 87, 12, 30, 22];

그러면 출력은 다음과 같아야 합니다. -

const output = 34;

예시

이에 대한 코드는 -

const arr = [34, 67, 31, 87, 12, 30, 22];
const findThirdMax = (arr = []) => {
   const map = {};
   let j = 0;
   for (let i = 0, l = arr.length; i < l; i++) {
      if(!map[arr[i]]){
         map[arr[i]] = true;
      }else{
         continue;
      };
      arr[j++] = arr[i];
   };
   arr.length = j;
   let result = -Infinity;
   if (j < 3) {
      for (let i = 0; i < j; ++i) {
         result = Math.max(result, arr[i]);
      }
      return result;
   } else {
      arr.sort(function (prev, next) {
         if (next >= prev) return -1;
         return 1;
      });
      return arr[j - 3]
   };
};
console.log(findThirdMax(arr));

출력

콘솔의 출력은 -

34