• jquery源码--merge grep type trim


    1.$.merge(arr1, arr2)

    合并两个数组

    var merge = function(first, second){
            var i = 0, len = +second.length, j = first.length;
            while(i < len){
                first[j++] = second[i++];
            }
            if(len !== len){//second.length 为NaN的情况
                while(second[i] !== 'undefined'){
                    first[j++] = second[i++];
                }
            }
            first.length = j;
            return first;
        }

    2.$.grep(elems, callback, invert)

     遍历数组,对每个元素执行callback,返回经过过滤剩下的元素数组集合。

    invert如果没写,或者为false,则返回callback执行后为true的元素集合;如果为true,则返回callback执行后为false的元素集合。

    elems为数组,callback为过滤函数,inverted为布尔值。callback参数为数组元素、索引。

    var grep = function(elems, callback, invert){
            var len = elems.length,
                matches = [],
                callbackExpect = !invert;
            for(var i = 0; i < len; i++){
                var callbackInverse = !callback(elems[i], i);
                if(callbackExpect !== callbackInverse){
                    matches.push(elems[i]);
                }
            }
            return matches;
        };

    3.$.type  返回参数的数据类型

    var class2Type = {};
        $.each("Boolean Number String Function Array Date RegExp Object Error".split(' '), function(i, name){
            class2Type['[object ' + name + ']'] = name.toLowerCase();
        });
        var type = function(obj){
            if(obj == null){
                return obj + '';
            }
            return (typeof obj === 'object' || typeof obj == 'function') ?
                class2Type[class2Type.toString.call(obj)] || 'object' :
                typeof obj;
        }

     4.$.trim 去除开头和结尾的空格

    var reg = /^[suFEFFxA0]+|[suFEFFxA0]+$/g;    
    //uFEFF是位序掩码,<BOM>,虽然不是很理解,先记下来了。。
    //xA0是&nbsp这个东东,我也不清楚为什么是这个码
    var trim = function(text){
        return (text == null) ? "" :
         (text+'').replace(reg,"");
    }
  • 相关阅读:
    阿里规范
    对 单元测试(UT)的理解
    阿里规范
    Zookeeper常见面试题(附答案)(建议收藏)
    【面试题】大数据从低级到高级的应用有哪些?
    【面试题】如何选择大数据组件?
    spark 中map 和 flatMap 的区别
    Spark-shell 报错:Failed to get database default, returning NoSuchObjectException
    Redis面试题
    Hadoop上小文件如何存储?
  • 原文地址:https://www.cnblogs.com/it-snail/p/3862868.html
Copyright © 2020-2023  润新知