多维数组
<script> var arr = [1,2,3,[4,[5,[6]]]]; // arr.length Array.prototype.each = function(fn){ try{ //1 目的: 遍历数组的每一项 //计数器 记录当前遍历的元素位置 this.i || (this.i=0); //var 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函数 并让函数执行 //fn.apply(e,[e]); fn.call(e,e); } this.i++ ; } this.i = null ; // 释放内存 垃圾回收机制回收变量 } } catch(ex){ // do something } return this ; } arr.each(function(item){ console.log(item); }); </script>
http://blog.csdn.net/wangyuchun_799/article/details/38460515
只有在泥泞的道路上才能留下脚印