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 相关文章推荐
根据选择不同的下拉值出现相对应的文本输入框
Aug 01 Javascript
Jquery的hover方法让鼠标经过li时背景变色
Sep 06 Javascript
全面兼容的javascript时间格式化函数(比较实用)
May 14 Javascript
JS实现一个按钮的方法
Feb 05 Javascript
javascript动态创建表格及添加数据实例详解
May 13 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
Sep 21 Javascript
详解从react转职到vue开发的项目准备
Jan 14 Javascript
Node.js 多进程处理CPU密集任务的实现
May 26 Javascript
通过JS深度判断两个对象字段相同
Jun 14 Javascript
Vue设置长时间未操作登录自动到期返回登录页
Jan 22 Javascript
Js图片点击切换轮播实现代码
Jul 27 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 dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
对python中的高效迭代器函数详解
2018/10/18 Python
pandas重新生成索引的方法
2018/11/06 Python
Python递归函数实例讲解
2019/02/27 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
python os.rename实例用法详解
2020/12/06 Python
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
医学院四年学习生活的自我评价
2013/11/06 职场文书
分厂厂长岗位职责
2013/12/29 职场文书
座谈会主持词
2014/03/20 职场文书
青奥会口号
2014/06/12 职场文书
玄武湖导游词
2015/02/05 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏