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 屏蔽按键效果与改变按键效果的示例代码
Dec 24 Javascript
使用jquery操作session方法分享
Jan 22 Javascript
javascript 中的 delete及delete运算符
Nov 15 Javascript
分享纯手写漂亮的表单验证
Nov 19 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
Jun 21 Javascript
JavaScript制作简单的框选图表
May 15 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
May 28 Javascript
Vue 列表上下过渡效果的实例代码
Jun 25 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 Javascript
vue.js实现只能输入数字的输入框
Oct 19 Javascript
解决Antd Table表头加Icon和气泡提示的坑
Nov 17 Javascript
详解Vite的新体验
Feb 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
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
PHP 冒泡排序算法的实现代码
2010/08/08 PHP
php日历制作代码分享
2014/01/20 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
CI框架常用函数封装实例
2016/11/21 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
JS编程小常识很有用
2012/11/26 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
javascript实现fetch请求返回的统一拦截
2019/12/22 Javascript
js实现双色球效果
2020/08/02 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
python实现计算资源图标crc值的方法
2014/10/05 Python
Ubuntu下安装PyV8
2016/03/13 Python
python八大排序算法速度实例对比
2017/12/06 Python
Python numpy 常用函数总结
2017/12/07 Python
Python列表解析配合if else的方法
2018/06/23 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
实体的生命周期
2013/08/31 面试题
企业精细化管理实施方案
2014/03/23 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
自查自纠工作总结
2014/10/15 职场文书
销售内勤岗位职责
2015/02/10 职场文书
商务英语求职信范文
2015/03/19 职场文书
课文《燕子》教学反思
2016/02/17 职场文书