js数组方法扩展实现数组统计函数

 更新时间:2014年04月09日 11:21:32   作者:  
这篇文章主要介绍了js数组方法扩展,实现数组统计函数,需要的朋友可以参考下
复制代码 代码如下:

/****************************************************
*CreateBy:joe zhou
*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;
};

相关文章

  • javascript工厂方式定义对象

    javascript工厂方式定义对象

    这篇文章主要介绍了javascript工厂方式定义对象,以及另外3中创建对象的方式,需要的朋友可以参考下
    2014-12-12
  • javascript实现playfair和hill密码算法

    javascript实现playfair和hill密码算法

    这篇文章主要介绍了javascript实现playfair和hill密码算法,需要的朋友可以参考下
    2014-12-12
  • JavaScript中的prototype.bind()方法介绍

    JavaScript中的prototype.bind()方法介绍

    在JavaScript中,我们经常用到函数绑定,而当你需要在另一个函数中保持this上下文时,使用Function.prototype.bind()会很方便
    2014-04-04
  • javascript之Boolean类型对象

    javascript之Boolean类型对象

    本文主要介绍javascript中的Boolean类型对象,Boolean对象非常简单,却非常有用,希望能给大家做一个参考。
    2016-06-06
  • Javascript学习笔记3 作用域

    Javascript学习笔记3 作用域

    每个写过程序的人都不会对作用域这个概念陌生,那在这篇文章中就来谈下Javascript的作用域。
    2010-01-01
  • 不懂JavaScript应该怎样学

    不懂JavaScript应该怎样学

    文是JavaScript库Mootools的入门性介绍文章,详细介绍了在网上能找到的比较好的学习HTML,CSS,JavaScript入门知识的资源以及随手参考的地方。文中介绍的从零入手学习JavaScript编程的过程很有参考价值。
    2008-04-04
  • 浅析JavaScript中的对象类型Object

    浅析JavaScript中的对象类型Object

    尽管JavaScript的拥趸一再强调js的面相对象,然而,或许只有在名为Object的这一类型中才能勉强理解出-- well...下面就让我们一起来浅析JavaScript中的对象类型Object
    2016-05-05
  • JavaScript面向对象之class继承类案例讲解

    JavaScript面向对象之class继承类案例讲解

    这篇文章主要介绍了JavaScript面向对象之class继承类案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • JavaScript 学习笔记之语句

    JavaScript 学习笔记之语句

    这篇文章主要介绍了JavaScript中的语句,包括条件分支语句、循环语句、迭代语句、Lable语句、break和continue语句、with语句、swith语句,十分全面细致,推荐给小伙伴们。
    2015-01-01
  • Javascript String.replace的妙用

    Javascript String.replace的妙用

    字符替换是一个非常重要的功能,javascript 中有一个 String.replace( ),但是此方法有很多不为新手所知的妙用,如果用的好了,可以为您节省很多宝贵时间,还等什么?马上进来看看吧!
    2009-09-09

最新评论