zoukankan      html  css  js  c++  java
  • 贴几个常用的基础函数

    取自jsGen的tool.js  

      function isArray(obj) {
            return Array.isArray ? Array.isArray(obj) : Object.prototype.toString.call(obj) === '[object Array]';
        }
    
        function isNull(obj) {
            return obj === null || obj === undefined || obj !== obj;
        }
    
        function toStr(value) {
            return isNull(value) ? '' : value + '';
        }
    
        function hasOwn(obj, key) {
            return Object.prototype.hasOwnProperty.call(obj, key);
        }
    
        function isEmpty(obj) {
            for (var key in obj) {
                if (hasOwn(obj, key)) {
                    return false;
                }
            }
            return true;
        }
    
        function checkType(obj) {
            var type = typeof obj;
            if (obj === null) {
                return 'null';
            } else if (isArray(obj)) {
                return 'array';
            } else {
                return type;
            }
        }
    
        function trim(str, strict) {
            return toStr(str).
            replace(strict ? (/s+/g) : (/ +/g), ' ').
            replace(/^s+/, '').
            replace(/s+$/, '');
        }
    
        function each(obj, iterator, context, arrayLike, right) {
            iterator = iterator || angular.noop;
            if (!obj) {
                return;
            } else if (arrayLike || isArray(obj)) {
                if (!right) {
                    for (var i = 0, l = obj.length; i < l; i++) {
                        if (iterator.call(context, obj[i], i, obj) === breaker) {
                            return;
                        }
                    }
                } else {
                    for (var i = obj.length - 1; i >= 0; i--) {
                        if (iterator.call(context, obj[i], i, obj) === breaker) {
                            return;
                        }
                    }
                }
            } else {
                for (var key in obj) {
                    if (hasOwn(obj, key)) {
                        if (iterator.call(context, obj[key], key, obj) === breaker) {
                            return;
                        }
                    }
                }
            }
        }
    // 去除数组中的undefined值,修改原数组,返回原数组
    
        function digestArray(list) {
            var result = [];
            if (isArray(list)) {
                each(list, function (x, i) {
                    if (checkType(x) === 'undefined') {
                        list.splice(i, 1);
                    }
                }, null, true, true);
    
            }
            return list;
        }
  • 相关阅读:
    仓鼠找sugar(LCA)
    bzoj4481非诚勿扰(期望dp)
    NOIP2011Mayan游戏(模拟)
    [国家集训队]旅游
    NOIP2012疫情控制(二分答案+树上贪心)
    NOIP2017题解
    [SCOI2010]幸运数字(容斥+爆搜)
    [JSOI2008]Blue Mary的战役地图(二分+哈希)
    [湖南集训]谈笑风生(主席树)
    NOIP2016题解
  • 原文地址:https://www.cnblogs.com/wssdzf/p/3334964.html
Copyright © 2011-2022 走看看