javascript原型-自己实现each方法遍历多维数组(2)

来源:互联网 发布:数据库sqlite怎么用 编辑:程序博客网 时间:2024/06/05 04:14
<script type="text/javascript">    var data = [1, 2, [3, 4]];    Array.prototype.each = function(fn) {        try {            //this为调用这个函数的对象,也就是data            //遍历数组的每一项,计数器记录当前遍历的元素位置            this.i || (this.i = 0); //var i =0;            //严谨的判断,当数组长度大于0并且传入的是函数才会进入核心代码            if (fn.length && fn.constructor == Function) {                while (this.i < this.length) {                    //获取数组中的每一项                    var e = this[this.i];                    //如果是数组则需要递归,否则是单个对象直接处理即可                    if (e && e.constructor == Array) {                        e.each(fn);                    } else {                        //如果不是数组就可以将当前元素传入fn函数,并执行                        fn.call(e, e); //当然也可以调用fn(e); 但是更推荐这么做,第一个参数可以是空null,尽量不占用额外的内存资源                    }                    this.i++;                }                this.i = null;            }        } catch (ex) {            //        }        return this;    };    data.each(function(item) {        alert(item);    });    </script>
阅读全文
0 0
原创粉丝点击