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 相关文章推荐
Textarea根据内容自适应高度
Oct 28 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
Dec 17 Javascript
JS判断对象是否存在的10种方法总结
Dec 23 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
Mar 31 Javascript
javascript中indexOf技术详解
May 07 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
Jul 18 Javascript
JS实现单击输入框弹出选择框效果完整实例
Dec 14 Javascript
JavaScript对象数组排序函数及六个用法
Dec 23 Javascript
JS获取年月日时分秒的方法分析
Nov 28 Javascript
360doc网站不登录就无法复制内容的解决方法
Jan 27 Javascript
20个最常见的jQuery面试问题及答案
May 23 jQuery
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
Feb 22 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中正确的使用json
2013/08/06 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
vue-router的hooks用法详解
2020/06/08 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
Python实现telnet服务器的方法
2015/07/10 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
Python阶乘求和的代码详解
2020/02/14 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
中文专业毕业生自荐信
2013/10/28 职场文书
人事部主管岗位职责
2013/12/26 职场文书
建筑专业自荐信范文
2014/01/05 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
技术支持岗位职责
2015/02/13 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
详解Redis瘦身指南
2021/05/26 Redis
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python