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 :
Le moyen le plus simple utilise p> math.max.apply code>: 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));
Qu'est-ce que appliquer code> faire et comment se rapporte-t-il sur la manière dont math.max code> fonctionne? Le OP ne sait probablement pas, vous devez inclure ces informations de votre réponse.
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]));
une magie ES6 pour vous, en utilisant le Syntaxe:
function biggestNumberInArray(arr) {
const max = Math.max(...arr);
return max;
}
Merci d'avoir souligné que lol, j'ai dû le tromper. Mais oui, je l'ai édité que très instantané.
Mais pourquoi i> utilise la syntaxe de diffusion ici? Qu'est-ce que cela fait et comment est-ce lié à la manière dont math.max code> 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
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));
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.
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;
}
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;
}
var a = [1,3,2]; pour (var max = a [0], i = 1, ilen = a.length; 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ù.
const Array = [-1, 0, 3, 100, 99, 2, 99] laisser le plus long = math.max (... tableau); p>
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?" I> - Ce n'est pas l'approche demandée dans la question, donc oui cette approche i> est fausse dans ce contexte i>. Lorsque vous répondez, assurez-vous de répondre à la question, pas seulement du titre de la question. Et s'il vous plaît i> 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 ?
Il y a plusieurs façons. strong> 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);
math.max.apply ({}, tableau); code>Ou recherchez le Web pour "Kit le plus grand élément". Par exemple: geeksforgeeks.org/kth-smallestlargest-element-unsorted-array A> Ceci est typiquement une question d'entrevue.
Il n'est pas nécessaire de nier pour des boucles ici. Astuce: utilisez une variable pour stocker la valeur max
Est-ce que cela peut utiliser dans des boucles?
Bien sûr, vous pouvez mettre n'importe quoi dans une boucle, la vraie question est si vous? I>
@cegfault, c'est généralement la question précurseur pour obtenir un candidat à l'entretien pour mettre en œuvre un algorithme de l'élément KTH ou pour parler des statistiques de commande. Donc, utiliser Max ne vous aide que par la première partie. La partie suivante est toujours comment trouveriez-vous le 2e plus grand, ou Top-2. Puis 3, alors k.
... Pour obtenir un candidat d'entretien I> ... Ah. j'ai compris
Ok, je vais essayer de mettre math.max.apply dans des boucles
Vous pouvez également trier le tableau, puis le faire sauter.
Ok, j'ai trouvé la réponse ... désolé, gars.can je supprime cette question?