解决方案 »

  1.   

    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]);
      

  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];
    }
    }
    }
      

  3.   


    <!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>
      

  4.   


    如果 arr1的每个值是无规律的大小,不是后面一个比前面一个大这种写法就不行了。
      

  5.   

    是的!如果 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]);