zoukankan      html  css  js  c++  java
  • 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,"");
    }
  • 相关阅读:
    js工具库
    细说log4j之log4j 1.x
    细说log4j之概述
    细说RESTful API安全之概述
    【转】javascript代码混淆和压缩
    细说RESTful API之入门介绍
    j2ee应用开发调试工具
    java定时器实现总结
    浏览器书签同步工具
    简单备份mysql数据库策略及实现方式
  • 原文地址:https://www.cnblogs.com/it-snail/p/3862868.html
Copyright © 2011-2022 走看看