【问题标题】:How to convert array to a mathematical computation expression? [duplicate]如何将数组转换为数学计算表达式? [复制]
【发布时间】:2023-03-08 05:13:01
【问题描述】:

我尝试编写一个计算数学表达式并将每个符号存储到一个数组中。

比如我要转换数组:

let arr = ['10', '-', '(', '2', '+', '1', ')', '*', '3'];

如下表达式:

let result = 10 - (2 + 1) * 3;  // 1

关于如何实现这一点的任何建议?

【问题讨论】:

  • eval(arr.join(' '))
  • 伙伴我更正了。您尚未点击新更改的链接。
  • 您也可以创建自己的计算器。我们在大学里用它来练习堆栈(对于数组,它使用pushpop)。几乎你一直将数字推到一个数组,将运算符推到另一个数组。当您找到具有更高优先级的内容时,您就可以将其处理到位。这样做直到数组为空。
  • 是的,这就是我目前的做法:)

标签: javascript arrays


【解决方案1】:

它不会验证您的输入,但 eval(arr.join("")) 会验证。
eval 接受一个字符串并像 js 表达式一样执行它。

【讨论】:

  • 我忘了我可以使用 eval() 来实现这个目标。非常感谢
  • 没问题,但请记住,这只有在表达式有效时才有效。另外,请考虑在使用eval 之前阅读this
【解决方案2】:

它只适用于eval

new Function 不适用于此问题

const arr = ['10', '-', '(', '2', '+', '1', ')', '*', '3'];

eval(arr.join(' ')); // 1

【讨论】:

    猜你喜欢
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    相关资源
    最近更新 更多