-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbasic calc.js
More file actions
33 lines (28 loc) · 1.29 KB
/
Copy pathbasic calc.js
File metadata and controls
33 lines (28 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Write a function called calculate that takes 3 values. The first and third values are numbers. The second value is a character. If the character is "+" , "-", "*", or "/", the function will return the result of the corresponding mathematical function on the two numbers. If the string is not one of the specified characters, the function should return null (throw an ArgumentException in C#).
// calculate(2,"+", 4); //Should return 6
// calculate(6,"-", 1.5); //Should return 4.5
// calculate(-4,"*", 8); //Should return -32
// calculate(49,"/", -7); //Should return -7
// calculate(8,"m", 2); //Should return null
// calculate(4,"/",0) //should return null
// Keep in mind, you cannot divide by zero. If an attempt to divide by zero is made, return null (throw an ArgumentException in C#)/(None in Python).
function calculate(num1, operation, num2) {
let operationMap = {
'+' : num1 + num2,
'-' : num1 - num2,
'*' : num1 * num2,
'/' : num1 / num2,
}
return isFinite(operationMap[operation])? operationMap[operation] : null
}
//CLEANER
const OPS = {
'+': (a,b)=>a+b,
'-': (a,b)=>a-b,
'*': (a,b)=>a*b || 0,
'/': (a,b)=>b == 0 ? null : a/b,
}
function calculate(num1, operation, num2) {
const op = OPS[operation];
return op ? op(num1, num2) : null;
}