• JS数组方法扩展


    /****************************************************
    *CreateBy:joe zhou
    *CreateDate:2011-9-20
    *Description:数组统计函数
    ****************************************************/
    $.extend({
        max: function (arr) {
            return cacl(arr, function (item, max) {
                if (!(max > item)) {
                    return item;
                }
                else {
                    return max;
                }
            });
        },
        min: function (arr) {
            return cacl(arr, function (item, min) {
                if (!(min < item)) {
                    return item;
                }
                else {
                    return min;
                }
            });
        },
        sum: function (arr) {
            return cacl(arr, function (item, sum) {
                if (typeof (sum) == 'undefined') {
                    return item;
                }
                else {
                    return sum += item;
                }
            });
        },
        avg: function (arr) {
            if (typeof (arr) == 'undefined' || arr.length == 0) {
                return 0;
            }
            return this.sum(arr) / arr.length;
        }
    });
    
    $.fn.extend({
        max: function () {
            return $.max(this.get());
        },
        min: function () {
            return $.min(this.get());
        },
        sum: function () {
            return $.sum(this.get());
        },
        avg: function () {
            return $.avg(this.get());
        }
    });
    
    function cacl(arr, callback) {
        var ret;
        for (var i=0; i<arr.length;i++) {
            ret = callback(arr[i], ret);
        }
        return ret;
    }
    
    Array.prototype.max = function () {
        return cacl(this, function (item, max) {
            if (!(max > item)) {
                return item;
            }
            else {
                return max;
            }
        });
    };
    Array.prototype.min = function () {
        return cacl(this, function (item, min) {
            if (!(min < item)) {
                return item;
            }
            else {
                return min;
            }
        });
    };
    Array.prototype.sum = function () {
        return cacl(this, function (item, sum) {
            if (typeof (sum) == 'undefined') {
                return item;
            }
            else {
                return sum += item;
            }
        });
    };
    Array.prototype.avg = function () {
        if (this.length == 0) {
            return 0;
        }
        return this.sum(this) / this.length;
    };
    
  • 相关阅读:
    ArcEngine 图层渲染(转)
    新年快乐!
    js限制输入(转载)
    ArcEngine中使用上下左右键移动地图
    ArcEngine 渲染的使用
    Geometry 对象浅析
    AE数据加载
    基于arcgis server地图页面设计备忘
    AO中的一些基础类和接口
    ArcGIS Server 9.2数据加载
  • 原文地址:https://www.cnblogs.com/kingge/p/2183088.html
Copyright © 2020-2023  润新知