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 相关文章推荐
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
Nov 06 Javascript
JavaScript Array扩展实现代码
Oct 14 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
Aug 19 Javascript
BootStrap实用代码片段之一
Mar 22 Javascript
javascript实现随机生成DIV背景色
Jun 20 Javascript
Node.js中的require.resolve方法使用简介
Apr 23 Javascript
angular第三方包开发整理(小结)
Apr 19 Javascript
ES6 Promise对象的含义和基本用法分析
Jun 14 Javascript
Vue 实现输入框新增搜索历史记录功能
Oct 15 Javascript
vue中对象数组去重的实现
Feb 06 Javascript
jQuery实现聊天对话框
Feb 08 jQuery
Vue脚手架编写试卷页面功能
Mar 17 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的ajax框架xajax入门与试用介绍
2010/12/19 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
java、javascript实现附件下载示例
2014/08/14 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
python解析中国天气网的天气数据
2014/03/21 Python
跟老齐学Python之网站的结构
2014/10/24 Python
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
Python 创建TCP服务器的方法
2020/07/28 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
德国足球商店:OUTFITTER
2019/05/06 全球购物
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
数控技术应届生求职信
2013/11/13 职场文书
初中生个人学习的自我评价
2013/12/04 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
同意迁入证明模板
2014/10/26 职场文书
美术教师个人总结
2015/02/06 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python