代码之家  ›  专栏  ›  技术社区  ›  Raymond Yeh

如何将数组转换为数学计算表达式?[复制品]

  •  2
  • Raymond Yeh  · 技术社区  · 6 年前

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

    例如,我想转换数组:

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

    到以下表达式:

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

    关于如何实现这一点有什么建议吗?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Maor Refaeli    6 年前

    它不会验证您的输入,但是 eval(arr.join("")) 会做的。
    eval 获取一个字符串并执行它,就像它是一个JS表达式一样。

        2
  •  2
  •   аlex    6 年前

    它只适用于 eval ,

    new Function 不适用于此问题

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