我有个数组 var a=new array(1,2,3,4) 这个数组里面的 1234转换成数字 并加 1。请教怎么处理。不过用 parseInt 还是什么转换。他怎么都是字符呢?

解决方案 »

  1.   

    var a=[1,2,3,4]
    for(var i=0;i<a.length;i++){
        a[i] = a[i]+1
    }for(var i=0;i<a.length;i++){
        alert(a[i])
    }
      

  2.   


       var sumShow=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0); 
       var sumHidden=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0); 
      var col=15;

    for(var k=1;k<14;k++){
    var butt=document.getElementById(k+"_"+col);
       if(showStats==0){
        alert(sumShow[j-1] + 1); 
       }
       else{ 
       alert(butt.innerHTML * 1 + parseFloat(sumShow[j-1])); 
       }
    } 大家看看。这样 显示出来为nan.
      

  3.   

       有张表
          1 2 3 4 5 6 7 8
    a1   1 2 3 4 5 6 7 8
    a2   1 2 3 4 5 6 7 8
    a3   3 3 3 3 3 3 3 3
    a4   4 4 4 4 4 4 4 4
    ...
    ..
    ..
    ar  100  100 100....
    有大于100行的样子。。
     我的想法是,把a1-a50的行,隐藏。并计算隐藏中每列的和。并和ar里面的和相减少。例如 我隐藏 a1和a2 两行。
    结果是a3   3 3 3 3 3 3 3 3
    a4   4 4 4 4 4 4 4 4
    ..
    ..
    ..
    ar  98 96 94 92 90 88 86我的代码很慢。我发一下。 function toshow(col,showStats){
       var col;
       var showStats;  
       var sumShow=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0); 
       var sumHidden=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0); 
      for(k=1;k<col;k++){ 
        var ui=document.getElementById("ddf_"+k);
    var checkb=document.getElementById("cid_"+k);  
      if(showStats==0){
      checkb.disabled=true;
           if (!checkb.checked){
                        for(var j=1;j<14;j++){
                  var su=document.getElementById(j+"_"+k);    
            sumShow[j-1] +=parseFloat(su.innerHTML);  
    }  //end for
          ui.style.display="none";   
      } //end if
    } //end if
      else{   //else if
    checkb.disabled=false;
         if (!checkb.checked){  
                        for(var j=1;j<14;j++){
                  var su=document.getElementById(j+"_"+k);    
            sumHidden[j-1] +=parseFloat(su.innerHTML); 
    }//end for j
                        ui.style.display="block"; 
     } //end if
      } //end if 
       }// end for  
       
    for(var k=1;k<14;k++){
    var butt=document.getElementById(k+"_"+col);
       if(showStats==0){
        butt.innerHTML=parseFloat(butt.innerHTML) - parseFloat(sumShow[k-1]);
       }
       else{ 
        butt.innerHTML=parseFloat(butt.innerHTML) + parseFloat(sumHidden[k-1]);
       }

         .getElementById("onlyG").innerHTML=gsf * 1 - yqf * 1 - waif * 1;
    }
     
    请教各位大侠帮我优化一下。如果有50条以上的数据。就会很慢。或者给我说个法子。谢谢了。
      

  4.   

    不用频繁的操作DOM对象,等全部计算完毕再对innerHTML赋值对innerHTML赋值会导致页面绘制,那很消耗cpu的。
      

  5.   

    我修改了一下
    function toshow(col,showStats){
       var col;
       var showStats;  
       var sumShow=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0); 
       var sumHidden=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0); 
      for(k=1;k<col;k++){ 
        var ui=document.getElementById("ddf_"+k);
    var checkb=document.getElementById("cid_"+k);  
      if(showStats==0){
      checkb.disabled=true;
           if (!checkb.checked){
                        for(var j=1;j<14;j++){
                  var su=document.getElementById(j+"_"+k);    
            sumShow[j-1] +=parseFloat(su.innerHTML);  
    }  //end for
          ui.style.display="none";   
      } //end if
    } //end if
      else{   //else if
    checkb.disabled=false;
         if (!checkb.checked){  
                        for(var j=1;j<14;j++){
                  var su=document.getElementById(j+"_"+k);    
            sumHidden[j-1] +=parseFloat(su.innerHTML); 
    }//end for j
                        ui.style.display="block"; 
     } //end if
      } //end if 
       }// end for  
       
       
        for(k=1;k<col;k++){ 
        var ui=document.getElementById("ddf_"+k);   
      if(showStats==0){ 
           if (!checkb.checked){ 
          ui.style.display="none";   
      } //end if
    } //end if
      else{   //else if 
         if (!checkb.checked){   
                        ui.style.display="block"; 
     } //end if
      } //end if 
       }// end for  
       
       
       
       
       
    for(var k=1;k<14;k++){
    var butt=document.getElementById(k+"_"+col);
       if(showStats==0){
        butt.innerHTML=parseFloat(butt.innerHTML) - parseFloat(sumShow[k-1]);
       }
       else{ 
        butt.innerHTML=parseFloat(butt.innerHTML) + parseFloat(sumHidden[k-1]);
       }

        var gsf=document.getElementById('1_'+col).innerHTML * 1;
          var yqf=document.getElementById('9_'+col).innerHTML * 0.7;
         var waif=document.getElementById('11_'+col).innerHTML * 1;   
          document.getElementById("onlyG").innerHTML=gsf * 1 - yqf * 1 - waif * 1;
    }
    麻烦大侠看看。还是很慢哦。cpu占用的确高。