From 90c58b9f774abe28f1f104d948e9c54a61869f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=96=D0=B5=D1=80=D0=B5=D0=B1=D1=86=D0=BE=D0=B2=20=D0=94?= =?UTF-8?q?=D0=BC=D0=B8=D1=82=D1=80=D0=BE=20=D0=92=D1=96=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B8=D1=87?= Date: Tue, 28 Jan 2025 14:33:45 +0200 Subject: [PATCH] refactoring, remove long conditional --- assets/Js/weight_conv.js | 156 +++++++++++++++++---------------------- 1 file changed, 67 insertions(+), 89 deletions(-) diff --git a/assets/Js/weight_conv.js b/assets/Js/weight_conv.js index 61976bfd..d0175507 100644 --- a/assets/Js/weight_conv.js +++ b/assets/Js/weight_conv.js @@ -28,97 +28,75 @@ function getsecOpt(e) { weightConverter(); } -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; +const conversionRates = { + "Pounds": { + "Grams": 453.59237, + "Kilograms": 0.453592, + "Milligrams": 453592.0000001679, + "Micrograms": 453591999.86863, + "US Tons": 0.0004999995920000043512, + "Ounces": 15.999986944000138323 + }, + "Grams": { + "Pounds": 0.00220462, + "Kilograms": 0.001, + "Milligrams": 1000, + "Micrograms": 1e+6, + "US Tons": 1.1023e-6, + "Ounces": 0.035274 + }, + "Kilograms": { + "Grams": 1000, + "Pounds": 2.20462, + "Milligrams": 1e+6, + "Micrograms": 1e+9, + "US Tons": 0.00110231, + "Ounces": 35.274 + }, + "Milligrams": { + "Pounds": 2.2046e-6, + "Kilograms": 1e-6, + "Grams": 0.001, + "Micrograms": 1000, + "US Tons": 1.1023e-9, + "Ounces": 3.5274e-5 + }, + "Micrograms": { + "Pounds": 2.2046e-9, + "Kilograms": 1e-9, + "Milligrams": 0.001, + "Grams": 1e-6, + "US Tons": 1.1023e-12, + "Ounces": 3.5274e-8 + }, + "Ounces": { + "Pounds": 0.0625, + "Kilograms": 0.0283495, + "Milligrams": 28349.5, + "Micrograms": 2.835e+7, + "US Tons": 3.125e-5, + "Grams": 28.3495 } - //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; + }; + + function weightConverter() { + const finalOutput = document.querySelector('#finalOutput'); + + // If the units are the same, output the weight directly + if (firOpt === secOpt) { + finalOutput.innerHTML = weight; + } else { + const conversionRate = conversionRates[firOpt]?.[secOpt]; + + if (conversionRate) { + finalOutput.innerHTML = weight * conversionRate; + } else { + // Handle unknown conversion cases (if any) + finalOutput.innerHTML = "Invalid conversion"; + } } -} + } + //Clears out all values and reset DOM document.getElementById('resetButton').addEventListener('click', reset);