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 相关文章推荐
自制轻量级仿jQuery.boxy对话框插件代码
Oct 26 Javascript
jQuery语法总结和注意事项小结
Nov 11 Javascript
清除div下面的所有标签的方法
Feb 17 Javascript
js或jquery实现页面打印可局部打印
Mar 27 Javascript
js实现点击图片自动提交action的简单方法
Oct 16 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
Nov 20 Javascript
解决vue-cli创建项目的loader问题
Mar 13 Javascript
vue iview组件表格 render函数的使用方法详解
Mar 15 Javascript
浅谈Vue为什么不能检测数组变动
Oct 14 Javascript
VUE兄弟组件传值操作实例分析
Oct 26 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
Apr 30 Javascript
vue中jsonp插件的使用方法示例
Sep 10 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
PHP防止跨域提交表单
2013/11/01 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
js常见遍历操作小结
2019/06/06 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
Python脚本实现集群检测和管理功能
2015/03/06 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
Python class的继承方法代码实例
2020/02/14 Python
利用python在excel中画图的实现方法
2020/03/17 Python
简述数据库的设计过程
2015/06/22 面试题
财务会计专业毕业生自荐信
2013/10/02 职场文书
工业学校毕业生自荐信范文
2014/01/03 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
党员政治学习材料
2014/05/14 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python