遍历数组,list是数组,fun是要用来处理数组中每一个数据的函数,fun的参数,一个是数组中的值,一个是第几个var arr = new Array(1,2,3);
Each(arr,function(n,i){alert("第"+i+"个是"+n);})

解决方案 »

  1.   

    那他和普通for循环比有什么优点?
      

  2.   

    个人感觉……方便
    不用一遍历就得一个for直观
    从函数名字上看,一看就知道是遍历了当然,有时候要在遍历里面做比较复杂的逻辑之类,还是觉得直接用for好
      

  3.   

    帮你优化一下~    var Each = function(list, fun){
            for(var i = 1,j = list.length; i < j; i++){ fun(list[i], i)}
        }
    这里进行如下修改,先让一个变量j来记录list.length这样不用每次都去计算list.length而是直接从变量j那里去获得~
      

  4.   

    作用的话,就和varlj 说的是一样的~
      

  5.   

    <input type="button" value = " one " ><br/>
    <input type="button" value = " two " ><br/>
    <input type="button" value = " three " ><br/>
    <input type="button" value = " four " ><br/>
    <input type="button" value = " five " ><br/>
    <input type="button" value = " seven " ><br/>
    <script language="JavaScript">
    <!--
    var Each = function(arr, fun){
    for(var i = 0;i < arr.length;i++){
    fun(arr[i], i)
    }
    } var obtn = document.getElementsByTagName("input");
    /*Each(obtn, function(n, i){
    n.onclick = function(){
    alert(i)
    }
    })
    */
    for(var i=0;i<obtn.length;i++){
    obtn[i].onclick = function(num){
    return function(){
    alert(num)
    }
    }(i)
    }//-->
    </script>大家看下这两段代码,呵呵 我也说不太明白 到底好处在哪 但我感觉确实有好处
      

  6.   

    用一个匿名函数作为参数进行遍历数据,目的是为每个数组元素,执行特定的匿名函数。
    例如:
    var a = [1,2,3,4,5,6,.....100];
    var b=0;
    Each(a,function(ai,i){
       b+=ai;
    });
    ==========================
    prototype框架中的写法是
    把这个方法定义在数组内部
    Array.prototype.each=function(){}调用时
    a.each(function(ai,i){
      b+=ai;
    });