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 相关文章推荐
javascript 延迟加载技术(lazyload)简单实现
Jan 17 Javascript
解析jQuery与其它js(Prototype)库兼容共存
Jul 04 Javascript
javascript中传统事件与现代事件
Jun 23 Javascript
JavaScript表单验证实例之验证表单项是否为空
Jan 10 Javascript
酷炫jQuery全屏3D焦点图动画效果
Mar 22 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
May 27 Javascript
jQuery实现Select左右复制移动内容
Aug 05 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
Dec 27 Javascript
koa-router源码学习小结
Sep 07 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
Nov 06 Javascript
jquery实现吸顶导航效果
Jan 08 jQuery
js异步接口并发数量控制的方法示例
Nov 22 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
session 的生命周期是多长
2006/10/09 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
2014/09/29 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
Python实现字典的遍历与排序功能示例
2017/12/23 Python
python实现超市扫码仪计费
2018/05/30 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
django2笔记之路由path语法的实现
2019/07/17 Python
python 写一个性能测试工具(一)
2020/10/24 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
先进党支部事迹材料
2014/01/13 职场文书
网络书店创业计划书
2014/02/07 职场文书
《胡杨》教学反思
2014/02/16 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
警示教育片观后感
2015/06/17 职场文书
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫