n = 8;var arr1= new Array(); arr1[0]=0; arr1[1]=8; arr1[2]=13;
var arr2= new Array(); arr2[0]=1.2; arr2[1]=3.5; arr2[2]=4.8;for(i=0; i<arr1.length; i++) if(arr1[i] > n) break; alert(arr2[i-2]);
我是这么写的,可能有些复杂,将就看吧 function test(number) { for(var i = 0; i < arr1.length; i++) { if(i == arr1.length -1) { if(number > arr1[i]) { return arr2[i] } } if(number > arr1[i] && number <= arr1[i+1]) { return arr2[i]; } } }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> New Document </title> </head> <body> <script type="text/javascript"> var arr1= new Array(); arr1[0]=0; arr1[1]=8; arr1[2]=13; arr1[3]=100;var arr2= new Array(); arr2[0]=1.2; arr2[1]=3.5; arr2[2]=4.8; arr2[3]=6.4;var num = prompt("Please enter your number",""); var pattern = /^\d+$/; var flag = -1; if(pattern.test(num)){ for(var i=0,len=arr1.length;i<len; i++){ if(num<=arr1[i]){ flag = i-1; break; } } if(flag==-1){ flag = arr1.length-1; } alert(arr2[flag]);}else{ alert('you input error'); }</script> </body> </html>
arr1[0]=0;
arr1[1]=8;
arr1[2]=13;
var arr2= new Array();
arr2[0]=1.2;
arr2[1]=3.5;
arr2[2]=4.8;for(i=0; i<arr1.length; i++) if(arr1[i] > n) break;
alert(arr2[i-2]);
function test(number)
{
for(var i = 0; i < arr1.length; i++)
{
if(i == arr1.length -1)
{
if(number > arr1[i])
{
return arr2[i]
}
}
if(number > arr1[i] && number <= arr1[i+1])
{
return arr2[i];
}
}
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
</head> <body>
<script type="text/javascript">
var arr1= new Array();
arr1[0]=0;
arr1[1]=8;
arr1[2]=13;
arr1[3]=100;var arr2= new Array();
arr2[0]=1.2;
arr2[1]=3.5;
arr2[2]=4.8;
arr2[3]=6.4;var num = prompt("Please enter your number","");
var pattern = /^\d+$/;
var flag = -1;
if(pattern.test(num)){
for(var i=0,len=arr1.length;i<len; i++){
if(num<=arr1[i]){
flag = i-1;
break;
}
} if(flag==-1){
flag = arr1.length-1;
} alert(arr2[flag]);}else{
alert('you input error');
}</script>
</body>
</html>
如果 arr1的每个值是无规律的大小,不是后面一个比前面一个大这种写法就不行了。
这就是你的这种数据组织方式的弱点
你需要把两组数据紧密的结合在一起
var arr1 = [0, 13, 8];
var arr2 = [1.2, 4.8, 3.5];var t = [];
for(i=0; i<arr1.length; i++) t.push([arr1[i], arr2[i]]);
t.sort(function(a, b) {
if(a[0] == b[0]) return 0;
return a[0] > b[0] ? 1 : -1;
});n = 13;
for(i=0; i<t.length; i++) if(t[i][0] > n) break;
alert(t[i-2][1]);