[英]JS form calculator
i made this simple calculator as my very first project in JS.我做了这个简单的计算器作为我在 JS 中的第一个项目。 I was at one course, where they told me, that programmers are 'lazy' so they are trying to write as less code as possible.
我在一门课程上,他们告诉我,程序员很“懒惰”,所以他们试图编写尽可能少的代码。 And there is comes my question.
我的问题来了。 I think that my calculator is really long on code.
我认为我的计算器的代码真的很长。 I would like to know, if there is any way to acomplish this with less code.
我想知道,是否有任何方法可以用更少的代码来完成。 Thank you for your time and have a good day:)
谢谢你的时间,祝你有美好的一天:)
function result() {
var amount = parseInt(document.getElementById("number").value);
var size = document.getElementById("velikost").value;
var color = document.getElementById("barva").value;
var price;
if(amount <= 19) {
if((size == 1) && (color == 1)) {
price = 2.5
}
else if ((size == 1) && (color == 2)) {
price = 3
}
else if ((size == 1) && (color == 3)) {
price = 9.9
}
else if ((size == 1) && (color == 4)) {
price = 10.9
}
else if ((size == 2) && (color == 1)) {
price = 3.9
}
else if ((size == 2) && (color == 2)) {
price = 4.5
}
else if ((size == 2) && (color == 3)) {
price = 28.9
}
else if ((size == 2) && (color == 4)) {
price = 29.9
} }
else if((amount > 19) &&(amount <= 49)) {
if((size == 1) && (color ==1)) {
price = 1.6
}
else if((size == 1) && (color ==2)) {
price = 2.2
}
else if((size == 1) && (color ==3)) {
price = 8.9
}
else if((size == 1) && (color ==4)) {
price = 9.9
}
else if((size == 2) && (color ==1)) {
price = 3.3
}
else if((size == 2) && (color ==2)) {
price = 4.1
}
else if((size == 2) && (color ==3)) {
price = 17.9
}
else if((size == 2) && (color ==4)) {
price = 19.9
}
}
else if((amount > 49) &&(amount <=99)){
if((size == 1) && (color ==1)) {
price = 1.4
}
if((size == 1) && (color ==2)) {
price = 2
}
if((size == 1) && (color ==3)) {
price = 6.9
}
if((size == 1) && (color ==4)) {
price = 8.9
}
if((size == 2) && (color ==1)) {
price = 3
}
if((size == 2) && (color ==2)) {
price = 3.8
}
if((size == 2) && (color ==3)) {
price = 12.9
}
if((size == 2) && (color ==4)) {
price = 15.9
}
}
else if ((amount > 99) && (amount <= 499)) {
if((size == 1) && (color ==1)) {
price = 1.2
}
if((size == 1) && (color ==2)) {
price = 1.8
}
if((size == 1) && (color ==3)) {
price = 4.9
}
if((size == 1) && (color ==4)) {
price = 6.9
}
if((size == 2) && (color ==1)) {
price = 2.6
}
if((size == 2) && (color ==2)) {
price = 3.4
}
if((size == 2) && (color ==3)) {
price = 9.9
}
if((size == 2) && (color ==4)) {
price = 12.9
}
}
else if ((amount > 499) && (amount <= 999)) {
if((size == 1) && (color ==1)) {
price = 1.1
}
if((size == 1) && (color ==2)) {
price = 1.6
}
if((size == 1) && (color ==3)) {
price = 3.9
}
if((size == 1) && (color ==4)) {
price = 4.9
}
if((size == 2) && (color ==1)) {
price = 2.4
}
if((size == 2) && (color ==2)) {
price = 3.2
}
if((size == 2) && (color ==3)) {
price = 6.9
}
if((size == 2) && (color ==4)) {
price = 7.9
}
}
else if ((amount > 999)) {
if((size == 1) && (color ==1)) {
price = 1
}
if((size == 1) && (color ==2)) {
price = 1.5
}
if((size == 1) && (color ==3)) {
price = 2.9
}
if((size == 1) && (color ==4)) {
price = 3.9
}
if((size == 2) && (color ==1)) {
price = 2.2
}
if((size == 2) && (color ==2)) {
price = 2.9
}
if((size == 2) && (color ==3)) {
price = 4.9
}
if((size == 2) && (color ==4)) {
price = 5.9
}
}
document.getElementById("vysledek").innerHTML=amount * price;
}
You could create an object like this.您可以像这样创建 object。 Small example just to show usecase:
只是为了展示用例的小例子:
const amountLt19 = {
size: {
1: {
color: {
1: 2.5,
2: 3,
3: 9.9
}
}
}
}
const objSize = amountLt19[size];
const price = objSize && objSize[color]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.