见证自己成长 从今天开始

var html="<ul>"
var aLi=document.getElementsByTagName("li");
var timer=null;
var i=0;
    for(i=0;i<5;i++){
        html+="<li></li>"
    }
    html+="</ul>"
    document.write(html);
    timer=setInterval(fn,500);
    
    function fn(){
        for(var i=0;i<5;i++){
            aLi[i].className="";    
        }
        aLi[i].className="active";
        i++;
        if(i==5){
            i=0;
        }    
        
    }
</script>

这是个小实验,写程序容易出现惯性思维 在定义的一个全局变量i,for 循环 里面全是用的 i做变量  。第二个for循环的i 结束 会影响设定的i的值 , 以至于 会影响aLi[i] , 只需将声明的i以及第二个循环后的i全部改成j    一个很容易犯的变量作用域的问题。

同学问到的用javascript  求数组中重复数值中的最大个数

   方法:遍历数组  遇到重复的去除并统计计数   比较统计个数大小

 

<script>
var array=[11,2,38,49,55,2,66,10,2,3,97,105,2,101,33,68,79,2,8,11,2,38,49,55,2,66,102,3,97,105,2,101,33,68,79,2,8,11,2,38,49,55,2,66,102,3,97,105,2];
var len=array.length;
var num=1;
var maxNum=0;
var arrKey=[];
var arrValue=[];
var index=0;

function getArrayAndMax(arr){
    for(i=0;i<len-1;i++){
        num=1;
        j=i+1;
        while(j<len){
            if(arr[j]==arr[i]){          //去重    调整索引位置   计数    数组长度变化
                arr.splice(j,1);
                len--;
                j--;
                num++;    
            }
            j++;
                
        }    
        arrKey[i]=arr[i];
        arrValue[i]=num;
        if(maxNum<num){
        maxNum=num;
        index=i;    
        }
            
    }
}
getArrayAndMax(array);

alert("最多的数是"+arrKey[index]+"----->有"+maxNum+"个")



</script>

如上 不用json 也可以很轻松写出来  只需注意 for循环里面用while 而不用for循环  

 

posted on 2017-03-06 20:51  小M630  阅读(215)  评论(0)    收藏  举报

导航