我有一个集合。收集低于如何在jquery中找到最接近的值,包括小数或浮点数
X=[1940,1941,1943,1945,1978]
我想传递一些值(例如:1944.578895)发现从上面收集最近的值
为1944.57889
它将返回1945
和1943.5
它将返回1943
像那样。收集“X
”将不同,这意味着它也包含浮动数字。
所以我想找到浮点收集以及数值收集的最接近的值。
感谢,
湿婆
我有一个集合。收集低于如何在jquery中找到最接近的值,包括小数或浮点数
X=[1940,1941,1943,1945,1978]
我想传递一些值(例如:1944.578895)发现从上面收集最近的值
为1944.57889
它将返回1945
和1943.5
它将返回1943
像那样。收集“X
”将不同,这意味着它也包含浮动数字。
所以我想找到浮点收集以及数值收集的最接近的值。
感谢,
湿婆
所有数字在Javascript是浮点所以这应该只是罚款:
var theArray = [1940,1941,1943,1945,1978];
var goal = 1944.578895;
var closest = null;
$.each(theArray, function(){
if (closest == null || Math.abs(this - goal) < Math.abs(closest - goal)) {
closest = this;
}
});
这是否会工作浮点数。这意味着如果我也有浮点收集以及传递浮点数。 – SivaRajini 2013-04-29 06:50:58
var array = [1945.6777,1978.27555,...] var goal = 1944.555像这样,上面的代码是否适用。 – SivaRajini 2013-04-29 06:52:54
它会工作得很好 – basarat 2013-04-29 06:54:29
可以使用Math.abs
Math.abs(this - goal) < Math.abs(closest - goal)
参考这个全例如通过@Guffa:
using jquery, how would i find the closest match in an array, to a specified number
的可能重复的[使用jquery,如何将我找到最接近的匹配在阵列中,到指定的号码](HTTP://计算器。 com/questions/3561275/using-jquery-how-will-i-find-the-closest-match-in-an-array-to-a-specified-num) – 2013-04-29 07:37:11