js实现求平均数功能

     今天在项目中遇到了一个求平均值的需求,大致需求就是,页面上面有四个input框,失去焦点就计算平均值,结果保留两位小数,并输出在页面上。不多说了,直接奉上代码,如有更好思路或者想法,都欢迎大家和我讨论。代码如下:

html:

<div id="par">
    <input id="test1" class="err" type="text" placeholder="测试信息" value="" />
    <input id="test2" class="err" type="text" placeholder="测试信息" value="" />
    <input id="test3" class="err" type="text" placeholder="测试信息" value="" />
    <input id="test4" class="err" type="text" placeholder="测试信息" value="" />
    <div id="test5"></div>
</div>

js:

function handler(arr,avgId){
    var l = arr.length,num = 0,sum=0;
    for(var i=0;i<l;i++){
        sum += getValue(arr[i]);
    }
    function getValue(id){
        var t = typeof id == "object"?id:$("#"+id),val = t.val();
        if(!isNaN(val)&&val!=""){
            num+=1;
            val = Number(val);
        }else{val=0;t.val("")};
        return val;
    }
    avgId = typeof avgId =="object"?avgId:$("#"+avgId);
    num == 0 ? avgId.text("") : avgId.text((sum/num).toFixed(2));
}

var myArr = ["test1","test2","test3","test4"];
$("#par").on("change",".err",function(){
    handler(myArr,$("#test5"));
})

/**

*注意:代码依赖jQuery,使用前,请先引入

*/

 转载请注明出处:http://www.cnblogs.com/callmesummer/p/3940222.html

拿出手机扫一扫,希望大家能支持一下:

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。