SHARE
TWEET

Untitled

a guest Mar 24th, 2019 45 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Первый вариант решения: через Switch
  2. function calculate(num1, operation, num2) {
  3.   if(typeof num1 === 'number' && typeof num2 === 'number' && operation !== null){
  4.     const result = (function(_operation) {
  5.       switch(true){
  6.         case (operation === '+') : return num1 + num2
  7.           break
  8.         case (operation === '-') : return num1 - num2
  9.           break
  10.         case (operation === '/') : return num1 / num2
  11.           break
  12.         case (operation === '*') : return num1 * num2
  13.           break
  14.         default: return null
  15.           break
  16.       }
  17.     })(operation);
  18.  
  19. // возвращаем результат как того требует условие задачи
  20.     switch(true){
  21.       case ((result === Infinity)||(result === -Infinity)) : return null
  22.         break
  23.       case (result === -0) : return 0
  24.         break
  25.       default: return result
  26.         break
  27.     }                                                                  
  28.   }
  29.   else{
  30.     return null;
  31.   }
  32. }
  33.  
  34. console.log(calculate(-4, "*", 0));
  35. console.log(calculate(2,"+", 4));
  36. console.log(calculate(6,"-", 1.5));
  37. console.log(calculate(49,"/", -7));
  38. console.log(calculate(8,"m", 2));
  39. console.log(calculate(4,"/",0));
  40.  
  41. // Это же решение, только используя тернарный оператор:
  42.  
  43. // function calculate(num1, operation, num2) {
  44. //   if(typeof num1 === 'number' && typeof num2 === 'number' && operation !== null){
  45. //       const result =
  46. //         (operation === '+') ? num1 + num2 :
  47. //         (operation === '-') ? num1 - num2 :
  48. //         (operation === '/') ? num1 / num2 :
  49. //         (operation === '*') ? num1 * num2 :
  50. //          null;
  51.  
  52. //       return condition =              
  53. //         ((result === Infinity)||(result === -Infinity)) ? null :
  54. //         (result === -0) ? 0 :
  55. //         result;                                                                        
  56. //   }
  57. //   else{
  58. //     return null;
  59. //   }
  60. // }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top