zoukankan      html  css  js  c++  java
  • 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;
    };
    
  • 相关阅读:
    [P1034][NOIP2001]一元三次方程求解 (二分)
    考前停课集训 Day7 嘞
    [P4995]跳跳!(贪心)
    [P4994]终于结束的起点 (递推)
    考前停课集训 Day6 垒
    [BZOJ1899][ZJOI2004]Lunch 午餐 (DP)
    考前停课集训 Day5 累
    任务查询系统 【主席树】
    主席树入门
    HNOI2002 营业额统计 平衡树模板题 【splay】
  • 原文地址:https://www.cnblogs.com/kingge/p/2183088.html
Copyright © 2011-2022 走看看