Comment trouver les trois plus grands nombres dans un tableau?

0

La question

Bonjour, je veux savoir les trois plus grands nombres dans un tableau par ORDRE. Je ne sais pas comment je doit mettre en œuvre la dernière logique où je dois maj les indices de la matrice de résultats en fonction de si la le nombre dans le tableau résultat est supérieur ou inférieur à la boucle du tableau des éléments.

    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

La meilleure réponse

2

Vous pouvez simplement sort dans l'ordre croissant et l'utilisation slice pour obtenir la dernière 3 des éléments comme:

1) Lorsque vous voulez vous entraîner au cours des 3 dernières plus grand dans l'ordre croissant [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) Quand vous voulez résultat au cours des 3 dernières plus grand dans l'ordre décroissant [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

Mieux encore de cloner le tableau et le dernier 3 nombre. BTW merci ÉDITÉ
decpk

pour cloner le tableau utiliseriez-vous la propagation de l'opérateur ou de la boucle et le pousser à vide?
dev

@dev ... n'est pas de l'opérateur de propagation de la syntaxe. J'irais pour spread la syntaxe...
decpk

Dans d'autres langues

Cette page est dans d'autres langues

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