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 30 Javascript
js切换光标示例代码
Oct 10 Javascript
Javascript改变CSS样式(局部和全局)
Dec 18 Javascript
node.js中的fs.openSync方法使用说明
Dec 17 Javascript
JavaScript设计模式之外观模式介绍
Dec 28 Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 Javascript
jQuery菜单插件用法实例
Jul 25 Javascript
js内置对象处理_打印学生成绩单的简单实现
Sep 24 Javascript
WEB 前端开发中防治重复提交的实现方法
Oct 26 Javascript
Webpack执行命令参数详解
Jun 17 Javascript
Require.js的基本用法详解
Jul 03 Javascript
vue检测对象和数组的变化分析
Jun 30 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+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
js获取Get值的方法
2016/09/29 Javascript
Angular2库初探
2017/03/01 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
学校联谊活动方案
2014/02/15 职场文书
认购协议书范本
2014/04/22 职场文书
生活小常识广播稿
2014/09/16 职场文书
五星级酒店前台接待岗位职责
2015/04/02 职场文书
电影红河谷观后感
2015/06/11 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL