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中剪贴板兼容性、判断复制成功或失败
Mar 09 Javascript
javascript实现回车键提交表单方法总结
Jan 10 Javascript
JavaScript小技巧整理篇(非常全)
Jan 26 Javascript
基于jQuery实现的无刷新表格分页实例
Feb 17 Javascript
微信小程序 网络API 上传、下载详解
Nov 09 Javascript
利用10行js代码实现上下滚动公告效果
Dec 08 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
Apr 26 Javascript
vue 实现把路由单独分离出来
Aug 13 Javascript
探索浏览器页面关闭window.close()的使用详解
Aug 21 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基础知识:类与对象(5) static
2006/12/13 PHP
PHP类中Static方法效率测试代码
2010/10/17 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
php检测图片主要颜色的方法
2015/07/01 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
jQuery源码分析之Event事件分析
2010/06/07 Javascript
jQuery之网页换肤实现代码
2011/04/30 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
JS实现小星星特效
2019/12/24 Javascript
全面分析Python的优点和缺点
2018/02/07 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
python getpass实现密文实例详解
2019/09/24 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
会计自我鉴定范文
2013/10/06 职场文书
生产内勤岗位职责
2013/12/07 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
酒店开业策划方案
2014/06/02 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
2014个人年度工作总结
2014/12/15 职场文书
董事长秘书工作总结
2015/08/14 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
什么是SOLID
2022/03/24 Javascript