Lookup Table Test
Final working version
by scotp71
HTML
<h1>
Lookup Table
</h1>
<br/>
<input type="textbox" id="v" value="" />
<input type="button" value="Enter Value" onclick="doRainfallLookup()"/>
<div id="output"></div>
JavaScript
//Look up table
function rainfallLookup(_val){
var results = "";
var lookup = {
"0": 0,
"1": 0.04,
"2": 0.11,
"3": 0.60,
"4": 0.87,
"5": 0.95,
"6": 1.00
};
results = lookup[_val];
return results;
}
//Main function to deal with input below/above table values and
//to determine if interpolation is needed
function doRainfallLookup(){
var val = document.getElementById("v").value;
if (val < 0){
document.getElementById("output").innerHTML = "Enter a number greater than 0.";
return;
}
if (val > 6){
document.getElementById("output").innerHTML = "Enter a number less than 6.";
return;
}
for (var i=0; i<7; i++){
if (val==i){
document.getElementById("output").innerHTML = "Results: " + rainfallLookup(val);
return;
}
}
document.getElementById("output").innerHTML = figureInterpol(val);
}
//Global variables
var dec = 0;
var lower = 0;
var upper = 0;
var calc = 0;
var calc2 = 0;
var a =0;
var b =0;
//fucntion to set up values used to calculate interpolation values
function figureInterpol(_val){
var val = _val;
if(val < 1){
calc2 = calcInterpol(val, 0, 1);
return calc2;
}
else if (val > 1 && val < 2){
calc2 = calcInterpol(val, 1, 2);
return calc2;
}
else if (val > 2 && val < 3){
calc2 = calcInterpol(val, 2, 3);
return calc2;
}
else if (val > 3 && val < 4){
calc2 = calcInterpol(val, 3, 4);
return calc2;
}
else if (val > 4 && val < 5){
calc2 = calcInterpol(val, 4, 5);
return calc2;
}
else{
calc2 = calcInterpol(val, 5, 6);
return calc2;
}
}
//function to calculation interpolation values
function calcInterpol(_val, a, b){
var val = _val;
lower = rainfallLookup(a);
upper = rainfallLookup(b);
dec = upper - lower;
calc = ((val-a) * dec) + lower;
calc2 = calc.toFixed(2);
return calc2;
}