首页 > 代码库 > 算法-实现each遍历多维数组(javascript)
算法-实现each遍历多维数组(javascript)
# 实现each遍历多维数组 <script type="text/javascript"> // var arr=[1,2,3,4,[1,2,3,4]] // arr.forEach(function(item,index,array)){} var arr=[12,3,2,3,4,[3,2,4,1],[3,3,1,32,12,4,4,52]] Array.prototype.each=function(fn){ try{ // 1、使用this.i,记录当前遍历元素的位置,单独的作用域 this.i || (this.i=0) // 2、严谨判断什么时候使用each(): // 当数组长度大于0,且传递的参数必须为函数 if(this.length>0 && fn.constructor==Function){ // 遍历数组,底层使用while,for,少用for in while(this.i<this.length){ var e=this[this.i] // 判断元素是否为数组 if(e && e.constructor==Array){ // 如果元素为数组,则执行递归操作 e.each(fn) }else{ // 如果元素为非数组,则把元素传递给fn函数, // 传递参数(当前元素)给fn,并执行函数fn fn.call(null,e) } this.i++ } // 函数执行完成后,释放内存,回收变量 this.i=null } }catch(ex){ //TODO handle the exception } return this } console.log(arr.each()) </script>
算法-实现each遍历多维数组(javascript)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。