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限制文本框只能输入数字(正则表达式)
Jul 15 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
Mar 19 Javascript
JavaScript函数定义的常见注意事项小结
Sep 16 Javascript
iScroll中事件点击触发两次解决方案
Mar 11 Javascript
jQuery实现转动随机数抽奖效果的方法
May 21 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
Apr 07 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
Sep 02 Javascript
详解jQuery选择器
Dec 21 Javascript
jQuery图片轮播功能实例代码
Jan 29 Javascript
JS简单获取日期相差天数的方法
Apr 24 Javascript
微信小程序中吸底按钮适配iPhone X方案
Nov 29 Javascript
详解Vue中使用Echarts的两种方式
Jul 03 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
simplehtmldom Doc api帮助文档
2012/03/26 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
php防止sql注入的方法详解
2017/02/20 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
JavaScript XML操作 封装类
2009/07/01 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
基于jQuery的获取标签名的代码
2012/07/16 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
js实现内置计时器
2019/12/16 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
python模块之StringIO使用示例
2015/04/08 Python
Python制作简单的网页爬虫
2015/11/22 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
大学老师推荐信
2014/02/25 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
给客户的感谢信
2015/01/21 职场文书
5.12护士节活动总结
2015/02/10 职场文书
MySQL创建管理子分区
2022/04/13 MySQL