我认为我需要的东西很简单,但是我无法找到正确的解决方案。
我在Javascript中有这样一种数组:
[0, 38, 136, 202, 261, 399]
当我点击按钮时,会生成一个0到600之间的值。我需要在这个数组中找到最接近但小于该值的数。
例如,如果生成的值为198,我希望得到136作为结果。如果生成的值为300,我想要261……如果是589,我想要399等等。
到目前为止,我尝试了以下代码:
var theArray = [ 1, 3, 8, 10, 13 ];
var goal = 7;
var closest = null;
$.each(theArray, function(){
if (closest == null || Math.abs(this - goal) < Math.abs(closest - goal)) {
closest = this;
}
});
alert(closest);
但它只返回最接近的值...现在我需要获取给定数字的最接近且较小的值...我如何改进我的算法以满足我的需求?
谢谢!
&& goal - this > 0
可能有效。 - fen1x