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判断IE6/IE7/FF的代码[XMLHttpRequest]
Feb 16 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
Sep 18 Javascript
jQuery的each终止或跳过示例代码
Dec 12 Javascript
代码获取历史上的今天发生的事
Apr 11 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
Apr 15 Javascript
浅谈jquery选择器 :first与:first-child的区别
Nov 20 Javascript
js Canvas实现的日历时钟案例分享
Dec 25 Javascript
js弹出窗口简单实现代码
Mar 22 Javascript
基于vue 动态加载图片src的解决方法
Feb 05 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
vue实现评论列表功能
Oct 25 Javascript
Vue+Element实现网页版个人简历系统(推荐)
Dec 31 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变量存储的详解
2013/06/13 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
$()JS小技巧
2007/07/21 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Python实现选择排序
2017/06/04 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
django的ORM操作 增加和查询
2019/07/26 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
国际贸易个人求职信范文
2014/01/04 职场文书
幼儿园校车司机的岗位职责
2014/01/30 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
中秋晚会活动方案
2014/08/31 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
作弊检讨书范文
2015/05/06 职场文书
被告答辩状范文
2015/05/22 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android