javascript 代替jqueryeach写法
javascript 代替jqueryeach写法
// 通过字面量方式实现的函数each var each = function(object, callback){ var type = (function(){ switch (object.constructor){ case Object: return 'Object'; break; case Array: return 'Array'; break; case NodeList: return 'NodeList'; break; default: return 'null'; break; } })(); // 为数组或类数组时, 返回: index, value if(type === 'Array' || type === 'NodeList'){ // 由于存在类数组NodeList, 所以不能直接调用every方法 [].every.call(object, function(v, i){ return callback.call(v, i, v) === false ? false : true; }); } // 为对象格式时,返回:key, value else if(type === 'Object'){ for(var i in object){ if(callback.call(object[i], i, object[i]) === false){ break; } } } }
var _array=[{ title: '江西' //一级菜单 ,children: [{ title: '南昌' //二级菜单 ,children: [{ title: '高新区' //三级菜单 //…… //以此类推,可无限层级 }] }] },{ title: '陕西' //一级菜单 ,children: [{ title: '西安' //二级菜单 }] }] each(_array, function(i, v){ console.log(i + ': ' + v); });
如果遇到什么不懂的地方直接关注公众号留言(本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。)
作者:newmiracle
出处:https://www.cnblogs.com/newmiracle/