见证自己成长 从今天开始
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循环
浙公网安备 33010602011771号