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实现可以编辑的表格
May 26 Javascript
jquery.ajax之beforeSend方法使用介绍
Dec 08 Javascript
jquery实现的Accordion折叠面板效果代码
Sep 02 Javascript
JavaScrip调试技巧之断点调试
Oct 22 Javascript
javascript作用域链(Scope Chain)用法实例解析
Nov 30 Javascript
jQuery实现布局高宽自适应的简单实例
May 28 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
Oct 13 Javascript
javascript 显示全局变量与隐式全局变量的区别
Feb 09 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
Sep 20 Javascript
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
js实现图片实时时钟
Jan 15 Javascript
JavaScript中reduce()的5个基本用法示例
Jul 19 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
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
django教程如何自学
2020/07/31 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
计算机应用专业毕业生求职信
2013/10/24 职场文书
工作迟到检讨书
2014/02/21 职场文书
婚礼新人答谢词
2015/01/04 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
导游词之临安白水涧
2019/11/05 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python
你知道Java Spring的两种事务吗
2022/03/16 Java/Android
基于Python实现nc批量转tif格式
2022/08/14 Python