Online javascript calculator helps to calculate the weighted average / mean of set of numbers with different levels of relevance (weight).
<!-- Script by hscripts.com -->
<!-- More scripts @www.hscripts.com -->
<html>
<head><title>Weighted Mean Calculator | Weighted Average in Javascript </title><script type="text/javascript">
function checnum(as)
{
var dd = as.value;if(dd[dd.length-1]=="," && dd.length==1){as.value= dd.substring(0,(dd.length-1));}else if(dd[dd.length-1]==" "){as.value= dd.substring(0,(dd.length-1));}else{var rr=dd.split(",");for(var i=0;i<rr.length;i++)
{ if(isNaN(rr[i]) || rr[i]==" "){dd=as.value;dd = dd.substring(0,(dd.length-1));if(i==0)as.value = dd;
elseas.value = dd;}}}var val1=document.getElementById("w").value;
var rary1=val1.split(",");var j;var k1=rary1.length;for (j=0; j<k1; j++)
{if(rary1[j].length>10) {alert("Enter minimum 10 digits"); document.getElementById("w").value =" ";
}} }
function trimExtraComma(obj)
{var utext =obj.value.trim();var firstChar = utext.substring(0, utext.length);if(firstChar == ','){utext = utext.substring(1);
}obj.value = utext.replace(/,+(?=,)/g,'');
var val=document.getElementById("m").value;
var rary=val.split(",");var i;var k=rary.length;
for (i=0; i<k; i++){
if(rary[i].length>10) {
alert("Enter minimum 10 digits");
document.getElementById("m").value =" ";
}
}
}
function cle()
{
document.getElementById("m").value='';
document.getElementById("w").value='';
document.getElementById("wm").value='';
}
function isNumberKey(evt)
{var charCode = (evt.which) ? evt.which : event.keyCode;if (charCode > 31 && (charCode < 48 || charCode > 57)&&(charCode!=44)&&(charCode!=46))
return false;return true;
}
function input_trace()
{var m,k,l,j,sum=0,wsum=0,avg;var sarr=new Array();var warr=new Array();var str=document.getElementById("m").value;var wstr=document.getElementById("w").value;
sarr=str.split(",");warr=wstr.split(",");
var r=new Array();var j=0;
for(var i=0;i<sarr.length;i++){if(sarr[i]!==''){r[j]=sarr[i];
j++;}}sarr=r;var m=new Array();var k=0;for(var i=0;i<warr.length;i++){if(warr[k]!==''){m[k]=warr[k];
k++;}}warr=m; var a = document.getElementById("m").value;var b = document.getElementById("w").value;if(a == ""){alert("Enter the Range of Values");}else if(b == ""){
alert("Enter the Weights to the Range of Values");
}else{
if(r.length==m.length){
for(j=0;j<r.length;j++){
sum=sum+parseFloat(r[j])*parseFloat(m[j]);wsum=wsum+parseFloat(m[j]);
}avg=sum/wsum;avg = avg.toFixed(3);
document.getElementById("wm").value=avg;}else{
alert("Assign appropriate weightage for the values");cle();}}
}
function chk(){
var sds = document.getElementById('dum');
if(sds == null){alert("You are using a free package.\n You are not allowed to remove the tag.\n");
document.getElementById("maindiv").style.visibility="hidden";
}
var sdss = document.getElementById("dumdiv");
if(sdss == null){alert("You are using a free package.\n You are not allowed to remove the tag.\n");
document.getElementById("maindiv").style.visibility="hidden";}
}
window.onload=chk;
</script>
<style>
h2 {border-bottom: 1px solid #ebebeb;color: #474747;font-size: 1.4em;font-weight: normal;line-height: 130%;
}
.frms
{
margin:0 auto;
padding:10px;
-moz-border-radius:.3em;
-webkit-border-radius:.3em;
-o-border-radius:.3em;
font-family:Tahoma, Geneva, sans-serif;
color:#333;
font-size:.9em;
line-height:1.2em;
}
.frms input[type="text"],[type="password"],[type="file"],textarea,select
{
width:99%;
background:#fff;
border:#ddd 1px solid;
border-radius:.35em;
-moz-border-radius:.35em;
-webkit-border-radius:.35em;
-o-border-radius:.35em;
padding:0 .5%;
margin-top:5px;
margin-bottom:15px;
height:35px;
}
.frms input:hover,textarea:hover,select:hover
{
box-shadow:#dae1e5 0px 0px 5px;
-moz-box-shadow:#dae1e5 0px 0px 5px;
-webkit-box-shadow:#dae1e5 0px 0px 5px;
-o-box-shadow:#dae1e5 0px 0px 5px;
}
.frms input:focus,textarea:focus,select:focus
{
-webkit-box-shadow: inset 7px 4px 7px -7px rgba(0,0,0,0.42);
-moz-box-shadow: inset 7px 4px 7px -7px rgba(0,0,0,0.42);
box-shadow: inset 7px 4px 7px -7px rgba(0,0,0,0.42);
border:#9d9983 1px solid;
}
.frms input[type="submit"],input[type="reset"],input[type="button"],button,.yellow_button,.blue_button
{
padding:7px 14px;
font-weight:bold;
color:#fff;
cursor:pointer;
border-radius:.3em;
-moz-border-radius:.2em;
-webkit-border-radius:.2em;
-o-border-radius:.2em;
margin:10px 0;
border:none;
}
.frms input[type="submit"]
{
background:#75ab22;
border-bottom:#629826 3px solid;
text-shadow:#396e12 1px 1px 0px;
}
.frms input[type="reset"]
{
background:#ee765d;
border-bottom:#d95e44 3px solid;
text-shadow:#8c3736 1px 1px 0px;
}
input[type="button"],button,.blue_button
{
background:#468cd2;
border-bottom:#3277bc 3px solid;
text-shadow:#214d73 1px 1px 0px;
}
.frms label
{
font-size:1.1em;
}
.resp_code
{
margin:5px 10px 10px 300px;
padding:10px 20px 10px 20px;
font:normal 1em/1.3em Tahoma, Geneva, sans-serif;
color:#333;
background:#f8f8f8;
border:#ddd 1px solid;
border-radius:.25em;
overflow:auto;width:50%;
}
@media screen and (max-width: 480px)
{
.resp_code
{width:auto !important;margin:0px !important;
}
}
</style>
</head><body>
<div class='resp_code' id='maindiv'>
<div align='center'><h2>Weighted Mean Calculator</h2></div>
<form name=first class='frms noborders'>
<div align='left'><label>Enter the Range of Values (Seperated by commas)</label><input type=text id=m onkeyup='trimExtraComma(this),checnum(this)' maxlength=100> </div>
<div align='left'><label>Enter the Weights to the Range of Values (Seperated by commas)</label>
<input type=text id=w onkeyup='trimExtraComma(this),checnum(this)' maxlength=100> </div><div align=center>
<input type=button value=Compute onclick=input_trace()>
<input type=reset value=Reset onclick=cle()><span align='center' style="font-size: 10px;color: #dadada;" id="dumdiv">
<a href="https://www.hscripts.com" id="dum" style="font-size: 10px;color: #dadada;text-decoration:none;color: #dadada;">©h</a></span>
</div><div class='result'><div align='left'><label>Weighted Arithmetic Mean</label><input type=text id=wm readonly> </div>
</div></form></div>
</body>
</html>