js按区间选择数据

    var revenue = [350,450,550,650,850,1000,1100,1250,1500];
    var reward   = [0,30,40,50,100,200,240,300,400];
    /*
        根据指定的值,在revenue查找第一个比它大的值,返回对应的索引,通过索引在reward获取对应的奖励
        1:如果值小于revenue最小的值时,则奖励0。所以reward前被了个0
        2:如果值大于revenue最大的值时,则奖励最高一档
        
        ***注意***
        前提是:revenue为整型数组,且已经按照从小到大排好了序的
    */
    function find(array,val){
        //如果值小于revenue最小的值时,则奖励0
        if(val  <   Math.min.apply(null,array)){
            return 0;
        };
        //如果值大于revenue最大的值时,则奖励最高一档
        if(val  >   Math.max.apply(null,array)){
            return array.length-1;
        };
        var idx =   0,
            i   =   0,
            j   =   array.length;
        for(;i<j;i++){
            if(array[i] > val){
                idx = i;
                break;
            };
        };
        return idx;
    };
    alert('奖励:'+reward[find(revenue,370)]);

  

posted @ 2018-01-26 11:37  CorderBob  阅读(2338)  评论(0编辑  收藏  举报