-1
votes

Trouvez le plus gros numéro dans un tableau en utilisant des boucles JavaScript

Créer une fonction appelée biggestnumberinarray ().

qui prend un tableau comme paramètre et renvoie le plus grand nombre. p>

Voici un tableau P>

 function biggestNumberInArray(arr) {
   for (let i = 0; i < array.length; i++) {
      for(let j=1;j<array.length;j++){
          for(let k =2;k<array.length;k++){
              if(array[i]>array[j] && array[i]>array[k]){
                    console.log(array[i]);
           }
         }
      }
   }
}


8 Réponses :


0
votes

Le moyen le plus simple utilise math.max.apply code>:

p>

const array = [-1,0,3,100, 99, 2, 99];

function biggestNumberInArray(array) {
  return array.reduce((m, c) => c > m ? c : m);
}

console.log(biggestNumberInArray(array));


1 commentaires

Qu'est-ce que appliquer faire et comment se rapporte-t-il sur la manière dont math.max fonctionne? Le OP ne sait probablement pas, vous devez inclure ces informations de votre réponse.



0
votes

Ceci est le mieux adapté à une programmation fonctionnelle et à l'aide d'une réduction de la part des boucles, les boucles sont hors de faveur de nos jours.

p>

const max = array => array && array.length ? array.reduce((max, current) => current > max ? current : max) : undefined;

console.log(max([-1, 0, 3, 100, 99, 2, 99]));


0 commentaires

4
votes

une magie ES6 pour vous, en utilisant le Syntaxe:

function biggestNumberInArray(arr) {
  const max = Math.max(...arr);
  return max;
}


5 commentaires

Merci d'avoir souligné que lol, j'ai dû le tromper. Mais oui, je l'ai édité que très instantané.


Mais pourquoi utilise la syntaxe de diffusion ici? Qu'est-ce que cela fait et comment est-ce lié à la manière dont math.max lit les numéros?


L'opérateur de la propagation transforme la matrice dans une liste de paramètres, Max ne prend pas de tableau comme argument.


Honnêtement, je ne veux pas dire surcharger des choses! J'ai suggéré d'utiliser la syntaxe de diffusion car personne d'autre à ce moment-là n'a suggéré l'utiliser.


Réduire est beaucoup plus performant JSPERF.fr/max-vs-Reduce/1



0
votes

Une autre manière visuelle consiste à créer une variable appelée quelque chose comme MaxNumber, puis vérifiez chaque valeur dans la matrice, et si elle est supérieure à la maxnumber, la maxnumber maintenant = cette valeur.

const array = [-1,0,3,100, 99, 2, 99];

function biggestNumberInArray(arr) {
    let maxNumber;
    for(let i = 0; i < arr.length; i++){
        if(!maxNumber){ // protect against an array of values less than 0
            maxNumber = arr[i]
        }
        if(arr[i] > maxNumber){
            maxNumber = arr[i];
        }
    }
    return maxNumber
}
console.log(biggestNumberInArray(array));


3 commentaires

Cela modifie la matrice. Beaucoup.


Mutating de la matrice pour trouver le max est une solution terrible.


Ouais tu es correct, Adrian, j'ai supprimé cela de ma réponse.



0
votes

Je pense que vous avez mal compris la façon dont les boucles sont utilisées - il n'est pas nécessaire d'avoir trois boucles imbriquées. Vous pouvez itération via la matrice avec une seule boucle, en gardant une trace du plus grand nombre d'une variable, puis renvoyant la variable à la fin de la boucle.

function largest(arr) {
var largest = arr[0]
arr.forEach(function(i) {
  if (i > largest){
    largest = i 
  }
}
return largest;
}


0 commentaires

3
votes

La réponse de Zer00ne devrait être meilleure pour la simplicité, mais si vous voulez toujours suivre la voie de la boucle, voici:

function biggestNumberInArray (arr) {
    // The largest number at first should be the first element or null for empty array
    var largest = arr[0] || null;

    // Current number, handled by the loop
    var number = null;
    for (var i = 0; i < arr.length; i++) {
        // Update current number
        number = arr[i];

        // Compares stored largest number with current number, stores the largest one
        largest = Math.max(largest, number);
    }

    return largest;
}


3 commentaires

var a = [1,3,2]; pour (var max = a [0], i = 1, ilen = a.length; i max) max = a [i]; .


Qui est "Zer00ne"? Basé sur le moment de la publication, cela pourrait faire référence à l'une des réponses ici (y compris la suppression de la suppression).


@Pethermortensen Je l'ai lié ici au cas où.



-1
votes

const Array = [-1, 0, 3, 100, 99, 2, 99] laisser le plus long = math.max (... tableau);


4 commentaires

Ce ne sont pas des boucles. Et, à nouveau , Cela ne ajoute rien à l'ensemble de réponses existantes .


Nous voulons trouver un grand nombre. Cette approche est fausse?


"Cette approche est fausse?" - Ce n'est pas l'approche demandée dans la question, donc oui cette approche est fausse dans ce contexte . Lorsque vous répondez, assurez-vous de répondre à la question, pas seulement du titre de la question. Et s'il vous plaît ne répète pas d'autres réponses. Au moins Formatez votre code .


Et s'il vous plaît ne répétez pas d'autres réponses. moyens ?



1
votes

Il y a plusieurs façons. strong>

  1. Utilisation de Math Max Fonction LI> ol> blockQuote>

    p>

    let array = [-1, 10, 30, 45, 5, 6, 89, 17];
    
    function getMaxOutOfAnArray(array) {
      let maxNumber = -Infinity;
      array.forEach(number => { maxNumber =  number > maxNumber ? number :  maxNumber; })
      console.log(maxNumber);
    }
    
    getMaxOutOfAnArray(array);


0 commentaires