Bir dizideki en büyük üç sayı nasıl bulunur?

0

Soru

Merhaba Bir dizideki en büyük üç sayıyı sırayla bulmak istiyorum. Eğer sonuç dizinin içinde geçerli sayı dizisi öğelerin döngü daha büyük ya da küçükse dayalı sonuç dizinin dizinleri kayması var Son mantık uygulamak gerektiğini nasıl karıştı.

    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

En iyi cevabı

2

Basitçe yapabilirsinizsort artan düzende ve kullanımdaslice sonuncuyu almak için 3 aşağıdaki gibi öğeler:

1) Artan düzende son 3 en büyük sonuç almak istediğinizde [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) Azalan düzende son 3 en büyük sonuç almak istediğinizde [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

Diziyi klonlamak ve son 3 numarayı almak daha da iyi. BTW teşekkürler DÜZENLENDİ
decpk

diziyi klonlamak için spread işlecini veya for döngüsünü kullanır ve boş diziye iter misiniz?
dev

@dev ... operatör değil, spread sözdizimidir. Gitmek için istiyorum spread sözdizimi...
decpk

Diğer dillerde

Bu sayfa diğer dillerde

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