Ako nájsť tri najväčšie čísla v poli?

0

Otázka

Dobrý deň, chcem nájsť tri najväčšie čísla v poli uznesením. Som zmätená, ako som mala realizovať posledný logika, kde som musel posunúť indexy výsledok pole na základe, ak aktuálne číslo v dôsledku pole je vyššia alebo nižšia ako slučky poľa položky.

    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

Najlepšiu odpoveď

2

Môžete jednoducho sort to vo vzostupnom poradí a použitie slice ak chcete získať posledný 3 prvky ako:

1) , Keď chcete mať za následok posledné 3 najväčšie vo vzostupnom poradí [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) , Keď chcete mať za následok posledné 3 najväčšie v zostupnom poradí [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

Ešte lepšie, aby klon pole a získajte poslednú 3 číslo. BTW vďaka UPRAVENÉ
decpk

klon pole by ste použiť šíriť operátora alebo pre slučky a zatlačte na prázdne pole?
dev

@misc ... nie je prevádzkovateľ je šíriť syntax. Ja by som ísť na spread syntax...
decpk

V iných jazykoch

Táto stránka je v iných jazykoch

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