Javascript 查找数组中下一个最大的数字

Javascript 查找数组中下一个最大的数字,javascript,Javascript,我有一个数字数组和一个值。我想找到值周围的数字。最重要的是最高的价值,但我两者都需要 var array = [2,4,5,8,11]; var value = 9; 我需要的结果应该是:8和11 我该怎么做 谢谢。只需为每个值编写一个简单的for循环搜索 例如: function findNumbers(arr, num){ var low = num + 1; //largest number lower than num, set initial value above num

我有一个数字数组和一个值。我想找到值周围的数字。最重要的是最高的价值,但我两者都需要

var array = [2,4,5,8,11];
var value = 9;
我需要的结果应该是:8和11

我该怎么做


谢谢。

只需为每个值编写一个简单的for循环搜索

例如:

function findNumbers(arr, num){
    var low = num + 1; //largest number lower than num, set initial value above num
    var high = num - 1; //smallest number higher than num, set initial value below num
    for(var i = 0; i < arr.length; i ++){
         if(arr[i] > low && arr[i] < num){
             low = arr[i];
         }
         if(arr[i] < high && arr[i] > num){
             high = arr[i];
         }
    }

    //optional check to see if low/high exists
    if(low > num){
        low = -1; //not found
    }
    if(high < num){
        high = -1; //not found
    }
    return [low,high];

}
函数findNumbers(arr,num){
var low=num+1;//小于num的最大数字,将初始值设置为大于num
var high=num-1;//大于num的最小数字,将初始值设置为小于num
对于(变量i=0;ilow&&arr[i]num){
高=arr[i];
}
}
//可选检查以查看是否存在低/高
如果(低>数值){
低=-1;//找不到
}
如果(高<数值){
高=-1;//找不到
}
返回[低,高];
}
就这样。无论是否排序
arr
,此功能都有效。

此功能可帮助您:


var数组=[2,4,5,8,11];
var值=9;
最小值,最大值;
乐趣();
函数fun(){
var sortArray=array.sort(函数(a,b){返回a-b});
对于(变量i=0;i值)
max=sortArray[i];
}
警报(最小值+”、“+最大值);
}

看着你的问题,你似乎还在学习jquery。不过我相信你会在这里得到很好的建议

这里是一个测试用例的例子,我将把解释留给你,这样你就可以学习每一行并学习

var myArray = [2, 4, 5, 8, 11];
var myValue = 9;

function BiggerThan(inArray) {
  return inArray > myValue;
}

function LesserThan(inArray) {
  return inArray < myValue;
}    

var arrBiggerElements = myArray.filter(BiggerThan);
var nextElement = Math.min.apply(null, arrBiggerElements);
alert(nextElement);

var arrLesserElements = myArray.filter(LesserThan);
var prevElement = Math.max.apply(null, arrLesserElements);
alert(prevElement);
var myArray=[2,4,5,8,11];
var-myValue=9;
函数BiggerThan(inArray){
返回inArray>myValue;
}
函数小于(inArray){
返回inArray
互联网上充斥着此类问题的解决方案……这是一个jQuery问题吗?我没有找到解决问题的方法,这就是我为什么要问的原因。当数组中的数据总是递增1时,我就这样做了。但对于我的问题,我没有找到解决办法。我试着在jQuery中这样做。似乎你不明白堆栈溢出或jQuery的目的…@PSport:你可以调整这个答案来获得两种解决方案,好的,谢谢,明白了!正是我需要的,谢谢。我可以使用它,并使它完全适合我的需要。好的,谢谢,我将对此进行分析。