using jquery, how would i find the closest match in an array, to a specified number
For example, you've got an array like this:
1, 3, 8, 10, 13, ...
What number is closest to 4?
4 would return 3
2 would return 3
5 would return 3
6 would return 8
ive seen this done in many different languages, but not in jquery, is this possible to do simply
You can use the jQuery.each
method to loop the array, other than that it's just plain Javascript. Something like:
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;
}
});
bryan.taylor
Here's a generalized version, taken from: 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;
来源:https://stackoverflow.com/questions/3561275/using-jquery-how-would-i-find-the-closest-match-in-an-array-to-a-specified-num