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 控制CSS样式表
Aug 20 Javascript
jquery.ui.draggable中文文档
Nov 24 Javascript
JQuery EasyUI 对话框的使用方法
Oct 24 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
Nov 23 Javascript
JavaScript与HTML的结合方法详解
Nov 23 Javascript
jQuery实现的导航下拉菜单效果示例
Sep 05 Javascript
详解JS中的快速排序与冒泡
Jan 10 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
Jun 29 Javascript
javascript原型链学习记录之继承实现方式分析
May 01 Javascript
javascript如何实现create方法
Nov 04 Javascript
Node.js API详解之 os模块用法实例分析
May 06 Javascript
koa中间件核心(koa-compose)源码解读分析
Jun 15 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
php5 and xml示例
2006/11/22 PHP
php 使用post,get的一种简洁方式
2010/04/25 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
2012/08/01 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
原生js实现日期联动
2015/01/12 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
原生JS实现圆环拖拽效果
2017/04/07 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
jQuery HTML设置内容和属性操作实例分析
2020/05/20 jQuery
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python实现linux下使用xcopy的方法
2015/06/28 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
高考自主招生自荐信
2013/10/20 职场文书
材料采购员岗位职责
2013/12/17 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
婚礼新人答谢词
2015/01/04 职场文书
部门2015年度工作总结
2015/04/29 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python