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); });
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/18787.html