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 相关文章推荐
客户端脚本中常常出现的一些问题和调试技巧
Jan 09 Javascript
js select常用操作控制代码
Mar 16 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
May 12 Javascript
js 手机号码合法性验证代码集合
Sep 29 Javascript
Node.js的Web模板引擎ejs的入门使用教程
Jun 06 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
Feb 21 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
Mar 07 Javascript
老生常谈jacascript DOM节点获取
Apr 17 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
Apr 28 Javascript
JavaScript编写棋盘覆盖代码详解
Aug 28 Javascript
vue使用websocket的方法实例分析
Jun 22 Javascript
node省市区三级数据性能测评实例分析
Nov 06 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自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
PHP中的表达式简述
2016/05/29 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
用Pygal绘制直方图代码示例
2017/12/07 Python
python爬取个性签名的方法
2018/06/17 Python
Sanic框架流式传输操作示例
2018/07/18 Python
Django实现学生管理系统
2019/02/26 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
Python3如何判断三角形的类型
2020/04/12 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
全球最大的服务市场:Fiverr
2017/01/03 全球购物
母亲节感恩活动记录
2014/03/16 职场文书
学校周年庆活动方案
2014/08/22 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
自查自纠整改报告
2014/11/06 职场文书
门面房租房协议书
2014/12/01 职场文书
党校学习党性分析材料
2014/12/19 职场文书
九九重阳节致辞
2015/07/31 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书