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 相关文章推荐
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
Dec 27 Javascript
模拟select的代码
Oct 19 Javascript
jQuery中:file选择器用法实例
Jan 04 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
Vue.js基础知识汇总
Apr 27 Javascript
JS正则替换去空格的方法
Mar 24 Javascript
Vue.js的动态组件模板的实现
Nov 26 Javascript
JS实现马赛克图片效果完整示例
Apr 13 Javascript
ES6 Promise对象的含义和基本用法分析
Jun 14 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
Jun 05 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
Jan 15 Javascript
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 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 带逗号千位符数字的处理方法
2012/01/10 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
PHP中strpos、strstr和stripos、stristr函数分析
2016/06/11 PHP
php实现微信企业转账功能
2018/10/02 PHP
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
jQuery插件编写步骤详解
2016/06/03 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
深入理解Promise.all
2018/08/08 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
Python实现井字棋小游戏
2020/03/09 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
幼师求职自荐信范文
2014/01/26 职场文书
法学求职信
2014/06/22 职场文书
辞职信格式模板
2015/02/27 职场文书
廉政承诺书2015
2015/04/28 职场文书
教师节老师寄语
2015/05/28 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
MySQL 十大常用字符串函数详解
2021/06/30 MySQL