2013-04-29 58 views
0

我有一个集合。收集低于如何在jquery中找到最接近的值,包括小数或浮点数

X=[1940,1941,1943,1945,1978] 

我想传递一些值(例如:1944.578895)发现从上面收集最近的值

1944.57889它将返回19451943.5它将返回1943像那样。收集X将不同,这意味着它也包含浮动数字。

所以我想找到浮点收集以及数值收集的最接近的值。

感谢,

湿婆

+0

的可能重复的[使用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

回答

2

所有数字在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; 
    } 
}); 

来源https://stackoverflow.com/a/8584929/390330

+0

这是否会工作浮点数。这意味着如果我也有浮点收集以及传递浮点数。 – SivaRajini 2013-04-29 06:50:58

+0

var array = [1945.6777,1978.27555,...] var goal = 1944.555像这样,上面的代码是否适用。 – SivaRajini 2013-04-29 06:52:54

+1

它会工作得很好 – basarat 2013-04-29 06:54:29

相关问题