Advertisement
divanov94

Untitled

Sep 30th, 2020
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     let keys=Array.from(document.getElementsByClassName('keys'));
  3.     let exprOutput=document.getElementById('expressionOutput');
  4.     let result=document.getElementById('resultOutput');
  5.     let clearBtn=document.querySelector('.clear');
  6.     let operand;
  7.     let firstNum='';
  8.     let secondNum='';
  9.  
  10.     let calculator={
  11.         '+':(a,b)=>a+b,
  12.         '-':(a,b)=>a-b,
  13.         '*':(a,b)=>a*b,
  14.         '/':(a,b)=>a/b,
  15.     }
  16.     keys.map(key=>key.addEventListener('click', function (evt) {
  17.         let currSelection=evt.target.value;
  18.  
  19.         clearBtn.addEventListener('click',()=>{
  20.             exprOutput.textContent='';
  21.             result.textContent='';
  22.             firstNum='';
  23.             secondNum='';
  24.             operand='';
  25.         });
  26.         if(Number(currSelection)||currSelection==="."||currSelection==='0'){
  27.             if(!operand){
  28.                 firstNum+=currSelection;
  29.                 exprOutput.textContent+=currSelection;
  30.             }else {
  31.                 secondNum+=currSelection;
  32.                 exprOutput.textContent+=currSelection
  33.             }
  34.         }else if(calculator.hasOwnProperty(currSelection)){
  35.             operand=currSelection;
  36.             exprOutput.textContent+=`${operand} `;
  37.         }else if(currSelection==='='){
  38.             if(Number(firstNum) && Number(secondNum)){
  39.                 result.textContent=calculator[operand](Number(firstNum),Number(secondNum));
  40.             }else {
  41.                 result.textContent='NaN'
  42.             }
  43.         }
  44.  
  45.     }))
  46.  
  47.  
  48.  
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement