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 相关文章推荐
URI、URL和URN之间的区别与联系
Dec 20 Javascript
IE6下JS动态设置图片src地址问题
Jan 08 Javascript
Microsoft Ajax Minifier 压缩javascript的方法
Mar 05 Javascript
jQuery+jqmodal弹出窗口实现代码分明
Jun 14 Javascript
可简单避免的三个JS发布错误的详细介绍
Aug 02 Javascript
JavaScript事件委托用法分析
Jan 24 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
Mar 17 Javascript
Bootstrap fileinput文件上传组件使用详解
Jun 06 Javascript
微信小程序实现animation动画
Jan 26 Javascript
angularjs 的数据绑定实现原理
Jul 02 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
Sep 29 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
基于PHP Socket配置以及实例的详细介绍
2013/06/13 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
js停止输出代码
2008/07/20 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
2013/01/18 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
Python爬取读者并制作成PDF
2015/03/10 Python
理解python正则表达式
2016/01/15 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
python获取url的返回信息方法
2018/12/17 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
客服工作职责
2013/12/11 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
综合测评个人总结
2015/03/03 职场文书
入党积极分子考察意见
2015/06/02 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript