number - usando jquery, ¿cómo puedo encontrar la coincidencia más cercana en una matriz, a un número especificado
math.round javascript 2 decimals (2)
usando jquery, ¿cómo puedo encontrar la coincidencia más cercana en una matriz, a un número especificado
Por ejemplo, tienes una matriz como esta:
1, 3, 8, 10, 13, ...
¿Qué número está más cerca de 4?
4 regresaría 3
2 regresaría 3
5 regresaría 3
6 regresaría 8
He visto esto hecho en muchos idiomas diferentes, pero no en jquery, ¿es posible esto simplemente?
Puede utilizar el método jQuery.each
para hacer un bucle en la matriz, aparte de eso, es simplemente Javascript. Algo como:
var theArray = [ 1, 3, 8, 10, 13 ];
var goal = 4;
var closest = null;
$.each(theArray, function(){
if (closest == null || Math.abs(this - goal) < Math.abs(closest - goal)) {
closest = this;
}
});
Aquí hay una versión generalizada, tomada de: http://www.weask.us/entry/finding-closest-number-array
int nearest = -1;
int bestDistanceFoundYet = Integer.MAX_INTEGER;
// We iterate on the array...
for (int i = 0; i < array.length; i++) {
// if we found the desired number, we return it.
if (array[i] == desiredNumber) {
return array[i];
} else {
// else, we consider the difference between the desired number and the current number in the array.
int d = Math.abs(desiredNumber - array[i]);
if (d < bestDistanceFoundYet) {
// For the moment, this value is the nearest to the desired number...
nearest = array[i];
}
}
}
return nearest;