round number decimals decimales jquery arrays math rounding closest

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;