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的MessageBox
Dec 03 Javascript
dojo 之基础篇(二)之从服务器读取数据
Mar 24 Javascript
javascript使用eval或者new Function进行语法检查
Oct 16 Javascript
jquery更换文章内容与改变字体大小代码
Sep 30 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
May 11 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
May 26 Javascript
confirm的用法示例用于按钮操作时确定是否执行
Jun 19 Javascript
javascript 数组操作详解
Jan 29 Javascript
js改变css样式的三种方法推荐
Jun 28 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
Sep 04 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
详解vue中组件参数
Jul 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
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
vuex实现简易计数器
2016/10/27 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
Pyqt5实现英文学习词典
2019/06/24 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
皮肤科医师岗位职责
2013/12/04 职场文书
大学活动策划书范文
2014/01/10 职场文书
酒店总经理助理岗位职责
2014/02/01 职场文书
销售顾问岗位职责
2014/02/25 职场文书
消防安全宣传口号
2014/06/10 职场文书
车辆转让协议书
2014/09/24 职场文书
2014年就业工作总结
2014/11/26 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers