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重新播放css动画所遇问题解决
Aug 21 Javascript
jquery选择checked在ie8普通模式下的问题
Feb 12 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
Sep 06 Javascript
jQuery中text() val()和html()的区别实例详解
Jun 28 Javascript
AngularJS下对数组的对比分析
Aug 24 Javascript
socket.io学习教程之深入学习篇(三)
Apr 29 Javascript
在vue项目中安装使用Mint-UI的方法
Dec 27 Javascript
three.js 入门案例详解
Jan 23 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
May 24 Javascript
Vue动态生成表格的行和列
Jul 18 Javascript
vue+高德地图实现地图搜索及点击定位操作
Sep 09 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执行linux系统命令的常用函数使用说明
2010/04/27 PHP
微信扫描二维码登录网站代码示例
2013/12/30 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
使用JQuery进行跨域请求
2010/01/25 Javascript
js截取函数(indexOf,join等)
2010/09/01 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
python时间整形转标准格式的示例分享
2014/02/14 Python
用python删除java文件头上版权信息的方法
2014/07/31 Python
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
简单介绍Python中的floor()方法
2015/05/15 Python
python删除过期文件的方法
2015/05/29 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
python实现学生信息管理系统
2020/04/05 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
python实现周期方波信号频谱图
2018/07/21 Python
python 不同方式读取文件速度不同的实例
2018/11/09 Python
详解python中的Turtle函数库
2018/11/19 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
python requests指定出口ip的例子
2019/07/25 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
外企财务年会演讲稿
2014/01/03 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书