JavaScript编程系列(一) 自己实现Array的Each 方法

来源:互联网 发布:android蓝牙源码分析 编辑:程序博客网 时间:2024/06/06 01:51
编程题:自己实现一个Array 的Each 方法, 能遍历多维数组!
实现如下:
  var  arr=[1,2,3,[4,[5,[6]]]];// 定义一个数组
        Array.prototype.each=function (fn){
            try{
                //1 目的:遍历数组的每一项
                this.i || (this.i=0);// 计数器 记录当前遍历元素的位置
                //2 判断 什么时候可以执行each方法
                //当数组的元素大于0&& 传递的参数必须为函数
                if(this.length>0 && fn.constructor == Function){
                    //循环遍历数组的每一项
                    while(this.i<this.length){    //while循环的范围
                        // 获取数组的每一项
                        var e=this[this.i];
                        // 如果当前元素获取到了,并且当前元素是一个数组
                        if(e && e.constructor == Array){
                            //直接做递归操作
                            e.each(fn);
                        }else{
                            // 如果不是数组(那就是一个单个元素)
                            fn.apply(e,[e]); // 目的 执行就是为了数组的当前函数传递给fn函数,并让函数执行
                            // fn.call(e,e);
                        }
                        this.i++;
                    }
                    this.i=null;// 释放内存 垃圾回收机制回收
                }
            }catch (ex){

            }
            return this;
        };
        arr.each(function (item){
            alert(item);
        });


PS: 本段代码来自于观看尚学堂JS视频中,特此记录!

原创粉丝点击