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); 
});

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/18787.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论