2010-09-10 4 views
8
var one = 1415; 
var two = 2343; 
var three = 11; 

Comment obtenir le plus grand nombre de ces variables?jQuery obtenir le plus grand nombre de la liste

+0

Vous ne pouvez pas les coller dans un tableau? Puis faire un peu de tri? –

+6

'plus grand = deux 'est assez court. Pourrait être raccourci davantage en utilisant des noms de variables plus courts. –

+1

qu'est-ce que jQuery a à voir avec ça? – DMin

Répondre

12

Si vous les avez dans un tableau , vous pouvez le faire:

var numbers_array = [1415, 2343, 11]; 

numbers_array.push(432); // now the array is [1415, 2343, 11, 432] 

var biggest = Math.max.apply(null, numbers_array); 
+0

@WorkingHard - Vous utilisez '.push()' pour ajouter des éléments en haut d'un tableau. Je vais donner un exemple dans ma réponse. – RightSaidFred

21

Math.max (un, deux, trois)

+0

@WorkingHard, vous pouvez utiliser Math.max.apply (null, [3,2,1]) ou trier les tableaux (par desc) et prendre le premier élément - [1,4,3,2] .sort (fonction (a, b) {return a b? -1: 0}) [0] – shabunc

1

les placer dans un tableau, les trier, et prendre la dernière des valeurs triées:

[one, two, three].sort(function (a, b) { 
    return a > b ? 1 : (a < b ? -1 : 0); 
}).slice(-1); 
+1

Todd, en fait, il n'y a aucune garantie, ce tableau sera trié numériquement. Vous devriez trier de cette façon - [n1, n2, n3] .sort (fonction (a, b) {return a> b? 1: a shabunc

+0

Intéressant, je ne m'en suis pas rendu compte. Il trie chaque élément en fonction de sa représentation sous forme de chaîne, donc 30 vient avant 4. –

0
function biggestNumber(){ 
    return Math.max.apply(this,arguments); 
} 

var one= 1415; 
var two= 2343; 
var three= 11; 

biggestNumber (un, deux, trois)

/* valeur retournée: (Nombre) */

+0

Pourquoi n'appelez-vous pas régulièrement 'Math.max' dans ce cas? –

1

Si vos valeurs sont dans un tableau, essayez de réduire:

var biggestValue = myArray.reduce(function(a,b){ return a > b ? a : b ; }); 
+1

Il semble que IE8 (au moins, peut-être plus bas) ne supporte pas Array.reduce. Utilisez une méthode différente décrite ici ou vous pouvez ajouter un code de compatibilité [à partir de Mozilla Reference Docs] (https://developer.mozilla.org/fr/JavaScript/Reference/Global_Objects/array/reduce) – Kevin

1

qui fonctionnera à 100%

var max = Math.max.apply(Math, "your array"); 
Questions connexes