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 库的相关资料,文中讲解非常细致,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-07-07
  • javascript学习笔记(八)正则表达式

    javascript学习笔记(八)正则表达式

    这篇文章本来很早就要写的,主要介绍一下javascript正则表达式,拖了挺久的,现在整理下,供大家学习交流哈!
    2014-10-10
  • 如何用ajax来创建一个XMLHttpRequest对象

    如何用ajax来创建一个XMLHttpRequest对象

    如何创建ajax代理对象? 我知道怎么做~就是不清楚怎么用语言表达?本文将详细介绍如何解决此问题
    2012-12-12
  • JSON对象 详解及实例代码

    JSON对象 详解及实例代码

    这篇文章主要介绍了JSON对象 详解的相关资料,并附简单实例代码,帮助大家学习参考,需要的朋友可以参考下
    2016-10-10
  • onmouseover和onmouseout的一些问题思考

    onmouseover和onmouseout的一些问题思考

    这两个事件的触发表现真的就是你想要的吗?在IE下确实有你需要的两个这样事件:onmouseenter 和 onmouseleave。但很不幸FF等其他浏览器并不支持
    2013-08-08
  • 在Javascript中 声明时用"var"与不用"var"的区别

    在Javascript中 声明时用"var"与不用"var"的区别

    Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的
    2013-04-04
  • 在JavaScript应用中使用RequireJS来实现延迟加载

    在JavaScript应用中使用RequireJS来实现延迟加载

    这篇文章主要介绍了在JavaScript应用中使用RequireJS来实现延迟加载,JavaScript是一款人气JS库,需要的朋友可以参考下
    2015-07-07
  • 网页编辑器ckeditor和ckfinder配置步骤分享

    网页编辑器ckeditor和ckfinder配置步骤分享

    ckeditor+ckfinder配置用法,现在ckeditor是互联网上应用比较广泛的网页编辑器了,这里介绍下配置方法,需要的朋友可以参考下
    2012-05-05
  • Javascript的this详解

    Javascript的this详解

    这篇文章主要介绍了Javascript的this的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 深入理解JavaScript内置函数

    深入理解JavaScript内置函数

    下面小编就为大家带来一篇深入理解JavaScript内置函数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06

最新评论