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 相关文章推荐
javascript关于继承的用法汇总
Dec 20 Javascript
使用js画图之饼图
Jan 12 Javascript
jQuery Mobile 和 Kendo UI 的比较
May 05 Javascript
js+html5实现canvas绘制椭圆形图案的方法
May 21 Javascript
Angular2使用jQuery的方法教程
May 28 jQuery
JS实现简单拖拽效果
Jun 21 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
Nov 06 Javascript
vue elementUI table 自定义表头和行合并的实例代码
May 22 Javascript
微信小程序事件流原理解析
Nov 27 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 Javascript
我所理解的JavaScript中的this指向
Sep 04 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中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
Python实现k-means算法
2018/02/23 Python
python 多个参数不为空校验方法
2019/02/14 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
python实现简单的tcp 文件下载
2020/09/16 Python
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
教师研修随笔感言
2014/01/23 职场文书
《植物妈妈有办法》教学反思
2014/02/25 职场文书
大学生找工作求职信
2014/07/09 职场文书
2015年事业单位工作总结
2015/04/27 职场文书