Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 26 additions & 86 deletions assets/Js/weight_conv.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,95 +28,35 @@ function getsecOpt(e) {
weightConverter();
}

/**
* Refactored weightConverter using a Lookup Table
*/
function weightConverter() {
const finalOutput = document.querySelector('#finalOutput');

if (firOpt == "Pounds" && secOpt == "Grams") {
finalOutput.innerHTML = weight * 453.59237;
} else if (firOpt == "Pounds" && secOpt == "Kilograms") {
finalOutput.innerHTML = weight * 0.453592;
} else if (firOpt == "Pounds" && secOpt == "Milligrams") {
finalOutput.innerHTML = weight * 453592.0000001679;
} else if (firOpt == "Pounds" && secOpt == "Micrograms") {
finalOutput.innerHTML = weight * 453591999.86863;
} else if (firOpt == "Pounds" && secOpt == "US Tons") {
finalOutput.innerHTML = weight * 0.0004999995920000043512;
} else if (firOpt == "Pounds" && secOpt == "Ounces") {
finalOutput.innerHTML = weight * 15.999986944000138323;
}
//Validates for grams
else if (firOpt == "Grams" && secOpt == "Pounds") {
finalOutput.innerHTML = weight * 0.00220462;
} else if (firOpt == "Grams" && secOpt == "Kilograms") {
finalOutput.innerHTML = weight * 0.001;
} else if (firOpt == "Grams" && secOpt == "Milligrams") {
finalOutput.innerHTML = weight * 1000;
} else if (firOpt == "Grams" && secOpt == "Micrograms") {
finalOutput.innerHTML = weight * 1e+6;
} else if (firOpt == "Grams" && secOpt == "US Tons") {
finalOutput.innerHTML = weight * 1.1023e-6;
} else if (firOpt == "Grams" && secOpt == "Ounces") {
finalOutput.innerHTML = weight * 0.035274;
}
//Validates for Kilograms
else if (firOpt == "Kilograms" && secOpt == "Grams") {
finalOutput.innerHTML = weight * 1000;
} else if (firOpt == "Kilograms" && secOpt == "Pounds") {
finalOutput.innerHTML = weight * 2.20462;
} else if (firOpt == "Kilograms" && secOpt == "Milligrams") {
finalOutput.innerHTML = weight * 1e+6;
} else if (firOpt == "Kilograms" && secOpt == "Micrograms") {
finalOutput.innerHTML = weight * 1e+9;
} else if (firOpt == "Kilograms" && secOpt == "US Tons") {
finalOutput.innerHTML = weight * 0.00110231;
} else if (firOpt == "Kilograms" && secOpt == "Ounces") {
finalOutput.innerHTML = weight * 35.274;
}
//Validates for Milligram
else if (firOpt == "Milligrams" && secOpt == "Pounds") {
finalOutput.innerHTML = weight * 2.2046e-6;
} else if (firOpt == "Milligrams" && secOpt == "Kilograms") {
finalOutput.innerHTML = weight * 1e-6;
} else if (firOpt == "Milligrams" && secOpt == "Grams") {
finalOutput.innerHTML = weight * 0.001;
} else if (firOpt == "Milligrams" && secOpt == "Micrograms") {
finalOutput.innerHTML = weight * 1000;
} else if (firOpt == "Milligrams" && secOpt == "US Tons") {
finalOutput.innerHTML = weight * 1.1023e-9;
} else if (firOpt == "Milligrams" && secOpt == "Ounces") {
finalOutput.innerHTML = weight * 3.5274e-5;
}
//Validates for Microgram
else if (firOpt == "Micrograms" && secOpt == "Pounds") {
finalOutput.innerHTML = weight * 2.2046e-9;
} else if (firOpt == "Micrograms" && secOpt == "Kilograms") {
finalOutput.innerHTML = weight * 1e-9;
} else if (firOpt == "Micrograms" && secOpt == "Milligrams") {
finalOutput.innerHTML = weight * 0.001;
} else if (firOpt == "Micrograms" && secOpt == "Grams") {
finalOutput.innerHTML = weight * 1e-6;
} else if (firOpt == "Micrograms" && secOpt == "US Tons") {
finalOutput.innerHTML = weight * 1.1023e-12;
} else if (firOpt == "Micrograms" && secOpt == "Ounces") {
finalOutput.innerHTML = weight * 3.5274e-8;
}
//Validates for Ounce
else if (firOpt == "Ounces" && secOpt == "Pounds") {
finalOutput.innerHTML = weight * 0.0625;
} else if (firOpt == "Ounces" && secOpt == "Kilograms") {
finalOutput.innerHTML = weight * 0.0283495;
} else if (firOpt == "Ounces" && secOpt == "Milligrams") {
finalOutput.innerHTML = weight * 28349.5;
} else if (firOpt == "Ounces" && secOpt == "Micrograms") {
finalOutput.innerHTML = weight * 2.835e+7;
} else if (firOpt == "Ounces" && secOpt == "US Tons") {
finalOutput.innerHTML = weight * 3.125e-5;
} else if (firOpt == "Ounces" && secOpt == "Grams") {
finalOutput.innerHTML = weight * 28.3495;
}
//Validates if first option is the same as second option
else {
finalOutput.innerHTML = weight;
//Define conversion rates relative to a base unit (Grams)
const conversionRates = {
"Grams": 1,
"Kilograms": 1000,
"Milligrams": 0.001,
"Micrograms": 0.000001,
"Pounds": 453.59237,
"Ounces": 28.34952,
"US Tons": 907184.74
};

// Check if units exist in our table and weight is provided
if (conversionRates[firOpt] && conversionRates[secOpt] && weight !== undefined) {

//Convert input to Grams, then Grams to target unit
const weightInGrams = weight * conversionRates[firOpt];
const convertedValue = weightInGrams / conversionRates[secOpt];


finalOutput.innerHTML = convertedValue;
} else {
// Fallback
finalOutput.innerHTML = weight || "";
}
}

Expand Down