zoukankan      html  css  js  c++  java
  • 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);
    });
  • 相关阅读:
    ARC 080
    CodeForces
    [Lydsy1806月赛] 路径统计
    AGC 022 C
    AGC 022 B
    AGC 020 B
    UVA
    AGC 018 A
    python
    python
  • 原文地址:https://www.cnblogs.com/newmiracle/p/11957570.html
Copyright © 2011-2022 走看看