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
Mar 09 Javascript
jQuery第三课 修改元素属性及内容的代码
Mar 14 Javascript
js计算德州扑克牌面值的方法
Mar 04 Javascript
js实现分享到随页面滚动而滑动效果的方法
Apr 10 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
Jun 14 Javascript
jquery显示loading图片直到网页加载完成的方法
Jun 25 Javascript
JavaScript优化专题之Loading and Execution加载和运行
Jan 20 Javascript
JavaScript“尽快失败”的原则实例详解
Oct 08 Javascript
jsp 网站引入外部css或者js失效问题解决
Oct 31 Javascript
微信小程序实现图片自适应(支持多图)
Jan 25 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
May 08 Javascript
如何对react hooks进行单元测试的方法
Aug 14 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
PHP 编程安全性小结
2010/01/08 PHP
百度地图API使用方法详解
2015/08/25 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
javascript Demo模态窗口
2009/12/06 Javascript
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
2014/08/12 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
vue组件watch属性实例讲解
2017/11/07 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
python文件写入write()的操作
2019/05/14 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
Python如何将模块打包并发布
2020/08/30 Python
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
志愿者服务活动总结报告
2015/05/06 职场文书
小学副班长竞选稿
2015/11/21 职场文书
四年级作文之植物
2019/09/20 职场文书
python字符串的多行输出的实例详解
2021/06/08 Python
Python实现Hash算法
2022/03/18 Python
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android