我是一个初学者,我正在学习JS。我想知道如何在下面的代码中写一个开关内的函数(如果可能的话),把代码变小。
我试着把每个操作的函数放在开关里面,但是从来没有成功过。请帮助我改进我的代码。谢谢!
//Calculator of Basic Operations
function addition(a, b) {
return (a + b);
}
function subtraction(a, b) {
return (a - b);
}
function multiplication(a, b) {
return (a * b);
}
function division(a, b) {
return (a / b);
}
console.log('Choose the number for the operation you want to use.');
console.log('1 - Addition');
console.log('2 - Subtraction');
console.log('3 - Multiplication');
console.log('4 - Division');
let calcAB = prompt('Operation: ');
switch (calcAB) {
case '1':
a = Number(prompt('Enter the value for A: '));
b = Number(prompt('Enter the value for B: '));
console.log(`The addition result is "${addition(a, b)}"`);
break;
case '2':
a = Number(prompt('Enter the value for A: '));
b = Number(prompt('Enter the value for B: '));
console.log(`The subtraction result is "${subtraction(a, b)}"`);
break;
case '3':
a = Number(prompt('Enter the value for A: '));
b = Number(prompt('Enter the value for B: '));
console.log(`The multiplication result is "${multiplication(a, b)}"`);
break;
case '4':
a = Number(prompt('Enter the value for A (dividend): '));
b = Number(prompt('Enter the value for B (divisor): '));
console.log(`The division result is "${division(a, b)}"`);
break;
}
2条答案
按热度按时间xpcnnkqh1#
两种情况之间唯一的变化是
(dividend)
的(divisor)
的/
的我会用一个数组来代替函数和运算符的名字--例如,
[0]
将引用(a, b) => a + b
,这样你只需要从用户选择的数字中减去1就可以得到函数。要得到a
和b
,只有当case是4时才对(dividend)
(divisor)
进行插值--但这一切都可以一次完成。iqjalb3h2#
不要为了使代码更小而使代码复杂,这会使代码更混乱,并忽略了要点,即让您理解语法和您正在做的事情