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

배열 JavaScript에서 상위 두 요소 반환

<시간/>

정렬되지 않은 순서로 숫자를 포함하는 JavaScript의 숫자 배열이 있습니다. 우리의 임무는 이 숫자 배열을 받아 배열의 상위 두 요소(배열의 가장 큰 두 요소)인 두 요소의 배열을 반환하는 함수를 작성하는 것입니다.

우리는 이것을 한 번에 수행해야 합니다. 즉, for 루프를 하나만 사용하거나 ES6 기능을 사용하는 경우와 같이 선형 시간에 이 메서드를 실행해야 합니다. 복잡성.

이제 Array.prototype.reduce() 메서드를 사용하여 코드를 작성해 보겠습니다. -

예시

const arr = [23, 65, 67, 23, 2, 6, 87, 23, 45, 65, 3, 234, 3];
const topTwo = arr => {
   if(arr.length < 2){
      return false;
   };
   return arr.reduce((acc, val) => {
      if(val > acc[0]){
         let t = acc[0];
         acc[0] = val;
         acc[1] = t;
      }else if(val > acc[1]){
         acc[1] = val;
      };
      return acc;
   }, [-Infinity, -Infinity]);
};
console.log(topTwo(arr));

출력

콘솔의 출력은 다음과 같습니다. -

[ 234, 87 ]