을 찾는 방법은 세 가장 큰 숫자를 배열?

0

질문

안녕하세요 원한을 찾기 위해 세 가지 큰 숫자를 배열의 순서에 의하여. 내가 혼동이 어떻게 구현해야 마지막 로직 내가 이동하는 인덱스 결과 배열에 따라하면 현재 결과 배열 이상 또는 이 루프는 배열의 항목입니다.

    function findThreeLargestNumbers(array) {
  let result = [null, null, null];
  for (let i = 0; i < array.length; i++) {
    if (!result[2] || result[i] > result[2]) {
      for (let j = 0; i <= 2; i++) {
        if (j === 2) {
          result[j] = array[i]
        } else {
          result[j] = array[i + 1]
        }
      }
    }
  }
  return result
}


console.log(findThreeLargestNumbers([141, 1, 17, -7, -17, -27, 18, 541, 8, 7, 7]));
algorithm javascript
2021-11-24 00:43:28
1

최고의 응답

2

당신은 단순히 sort 그것은 오름차순으로 사용 slice 마지막 3 요소:

1) 할 때 원하는 결과 지난 3 에서 가장 큰 오름차순으로 [18, 141, 541]

function findThreeLargestNumbers(array) {
  return [...array].sort((a, b) => a - b).slice(-3);
}

// [18, 141, 541]
console.log(findThreeLargestNumbers([141, 1, 17, -7, -17, -27, 18, 541, 8, 7, 7]));

2) 할 때 원하는 결과 지난 3 에서 가장 큰 내림차순으로 [541, 141, 18]

function findThreeLargestNumbers(array) {
  return [...array].sort((a, b) => b - a).slice(0, 3);
}

console.log(findThreeLargestNumbers([141, 1, 17, -7, -17, -27, 18, 541, 8, 7, 7]));

2021-11-24 00:50:39

더 나은 복 배열 및 마지막 3 번호입니다. BTW 감사 편집
decpk

복제는 배열을 사용할 확산 연산자 또는 반복하고 밀어를 빈 배열?
dev

@dev ... 되지 않은 운영자에 확산되는 구문을 사용합니다. 나는 이동 spread syntax...
decpk

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................