J'ai un tableau JavaScript et une variable comme ça;Sélection du plus grand nombre plus petit qu'une variable dans le tableau
var a = [0, 1200, 3260, 9430, 13220],
b = 4500;
Quelle serait la manière la plus intelligente de sélectionner la plus grande valeur dans la matrice qui est toujours inférieure ou égale à la variable? Dans cet exemple, je dois sélectionner 3260
.
Je pourrais faire quelque chose comme ceci;
$.each(a, function(i){
if(a[i] <= b && a[i+1] > b){
var c = a[i];
return false;
}
});
Mais je pense que cela pourrait ne pas fonctionner si la valeur de tableau sélectionnée est la dernière. Sans oublier, pour moi, ça ressemble à beaucoup de code pour quelque chose de plutôt simple.
Existe-t-il une façon plus intelligente/moins verbeuse de réaliser ce que je cherche?
(et oui, je sais que je ne devrais pas avoir utilisé une boucle jQuery pour cela, mais je suis paresseux lorsque vous tapez des exemples)
Si ce tableau est 'toujours a' commande, vous pouvez effectuer [recherche binaire ] (http://en.wikipedia.org/wiki/Binary_search_algorithm) sur ce tableau. Mais si le tableau est de petite taille, alors vous pouvez le parcourir linéairement ... ce serait un gain de temps négligeable. – Stano