สร้างเครื่องคิดเลขง่ายๆ รับสตริงรูปแบบ "number operator number" แล้วคำนวณผลลัพธ์
ตัวอย่างโค้ด
const problem = '3 add 16';
const calculate = opr => {
const [num1, operation, num2] = opr.split(' ');
switch (operation) {
case 'add': return +num1 + +num2;
case 'divide': return +num1 / +num2;
case 'subtract': return +num1 - +num2;
case 'multiply': return +num1 * +num2;
case 'modulo': return +num1 % +num2;
default: return 0;
}
};
console.log(calculate(problem));
ผลลัพธ์
19
การขยายความสามารถ
const operations = {
'add': (a, b) => a + b,
'subtract': (a, b) => a - b,
'multiply': (a, b) => a * b,
'divide': (a, b) => a / b,
'modulo': (a, b) => a % b,
'power': (a, b) => a ** b,
};
const calculate = (str) => {
const [a, op, b] = str.split(' ');
return operations[op] ? operations[op](+a, +b) : NaN;
};
ใช้ Object lookup แทน switch ง่ายต่อการเพิ่ม operator ใหม่