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


Posted in Javascript onApril 09, 2014
/****************************************************
*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 相关文章推荐
js 单击式的下拉菜单效果实例
Aug 13 Javascript
简单方法判断JavaScript对象为null或者属性为空
Sep 26 Javascript
node.js中的console.trace方法使用说明
Dec 09 Javascript
jQuery中odd选择器的定义和用法
Dec 23 Javascript
每天一篇javascript学习小结(面向对象编程)
Nov 20 Javascript
JQuery 设置checkbox值二次无效的解决方法
Jul 22 Javascript
AngularJS 实现弹性盒子布局的方法
Aug 30 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
详解jQuery中的getAll()和cleanData()
Apr 15 jQuery
微信小程序进入广告实现代码实例
Sep 19 Javascript
es6 super关键字的理解与应用实例分析
Feb 15 Javascript
支付宝小程序实现省市区三级联动
Jun 21 Javascript
jquery实现pager控件示例
Apr 09 #Javascript
模拟用户点击弹出新页面不会被浏览器拦截
Apr 08 #Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
Apr 08 #Javascript
js定时调用方法成功后并停止调用示例
Apr 08 #Javascript
jquery选择器使用详解
Apr 08 #Javascript
jquery淡化版banner异步图片文字效果切换图片特效
Apr 08 #Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
Apr 08 #Javascript
You might like
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
php fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
php通过session防url攻击方法
2014/12/10 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
PHP操作XML中XPath的应用示例
2019/07/04 PHP
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
JavaScript之数组(Array)详解
2015/04/01 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
Python语言的12个基础知识点小结
2014/07/10 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
python书籍信息爬虫实例
2018/03/19 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
python中while和for的区别总结
2019/06/28 Python
python实现串口自动触发工作的示例
2019/07/02 Python
python实现计算器功能
2019/10/31 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
Java多态性的定义以及类型
2014/09/16 面试题
2014年庆元旦活动方案
2014/02/15 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
简爱读书笔记
2015/06/26 职场文书
八年级作文之友情
2019/11/25 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书