解决方案 »
- appendChild引起的parentNode问题,请教
- 如何改变Window.ShowModalDialog()弹出框的title??
- 高手进来,给解释一下这个正则,(别说是校验json的,谁都知道!)
- 关于 CheckBox全选的问题..请大家看看我的JS哪写错了...
- 怎么给dom对象付onclick事件??
- 将一个JSON格式的数据转换成另一个树型结构的JSON数据,请高手指教!SOS班主
- 父窗口(框架)弹出子窗口(框架),子窗口如何向父子窗口传值
- 哪位提供一下国家 省份 城市 所有的两级连动下拉框数据呀
- 打开文件问题(比较简单)
- 【正则】javascript 正则如何提取完整8位数字
- ckeditor编辑器中的文件管理,我如何想要得到选中的文件URL地址?
- 一段基于jQuery代码不支持1.9.1帮忙看下谢谢!
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)]);
var range = [350,450,550,650,850,1000,1100,1250,1500];
var reward = [30,40,50,100,200,240,300,400];
function binarySearch(arr,findVal,leftIndex,rightIndex){
if(leftIndex > rightIndex){
var find = leftIndex-1
return find;
}
var midIndex = Math.floor((leftIndex+rightIndex)/2);
var midVal = arr[midIndex];
if(midVal>findVal){
return binarySearch(arr,findVal,leftIndex,midIndex-1);
}else if(midVal<findVal){
return binarySearch(arr,findVal,midIndex+1,rightIndex);
}else {
var find = midIndex +1;
return find;
}
}
function ward(a){
if(a<0){
return 'no';
}
if(a>7){
a=7;
}
return reward[a];
}
var $a = binarySearch(range,800,0,9);
var $ward= ward($a);