# 实现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)
原创
©著作权归作者所有:来自51CTO博客作者f1yinsky的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
js中自己实现each方法来遍历多维数组json json格式
-
javascript 定期循环 js循环each
在js中我们一般都使用for循环,但是这样的代码见的多了,总是感觉到审美疲劳,而且有更好的方式可以替代for循环,比如js的foreach和jquery的each.我们看一行代码,这是一个多选框(html代码)
javascript div 循环 数组 for循环 jquery
















