计算器加减乘除括号

计算器

let s = "2*9/2"
function AA(v) {
  let s = []
  let temp = ''
  for (let m = 0; m < v.length; m++) {
    if (!isNaN(v[m] - 0)) {
      while (!isNaN(v[m] - 0)) {
        temp = temp + v[m]
        m++
      }
      m--
    }

    s.push(temp || v[m])
    temp = ''
  }
  for (let i = 0; i < s.length; i++) {
    if (s[i] === ")") {
      for (let j = i; j >= 0; j--) {
        if (s[j] === "(") {
          const value = s.splice(j, i - j + 1, '@')
          s.splice(j, 1, name(value))
          i = j
          break
        }
      }
    }
  }
  function name(params) {
    let total = 0;
    if (params[0] === '(') {
      params.pop()
      params.shift()
    }

    for (let y = 0; y < params.length; y++) {
      if (params[y] === "*") {
        params[y - 1] = params[y - 1] * params[y + 1]
        params.splice(y, 2)
        y--
      }
      if (params[y] === "/") {
        params[y - 1] = params[y - 1] / params[y + 1]
        params.splice(y, 2)
        y--
      }

    }
    for (let x = 0; x < params.length; x++) {
      if (params[x] === "+") {
        total += params[x + 1] - 0
        x += 1
      }
      else if (params[x] === "-") {
        total -= params[x + 1] - 0
        x += 1
      }
      else {
        total += params[x] - 0
      }

    }
    return total
  }
  return name(s)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值