Javascript 获取乘积和表达式mathjs/js的不同乘积

Javascript 获取乘积和表达式mathjs/js的不同乘积,javascript,mathjs,Javascript,Mathjs,有没有一种方法可以使用Mathjs或其他js库,甚至是plainjs来获得乘积和表达式的不同乘积?F.e将此表达式作为字符串给出: 7.30*7.40-2.10*1.30+8.10*(2.70+0.60+4.70)+0.30*0.60+1.60*0.70+2.95*2.65+6.00*5.80 函数应该只执行乘法,并返回不同乘积的不同和 结果应该是: 54.02-2.73+64.8+0.18… 它应该尊重父母。 let str=“7.30*7.40-2.10*1.30+8.10*(2.70+0.

有没有一种方法可以使用Mathjs或其他js库,甚至是plainjs来获得乘积和表达式的不同乘积?F.e将此表达式作为字符串给出:

7.30*7.40-2.10*1.30+8.10*(2.70+0.60+4.70)+0.30*0.60+1.60*0.70+2.95*2.65+6.00*5.80

函数应该只执行乘法,并返回不同乘积的不同和

结果应该是:
54.02-2.73+64.8+0.18…

它应该尊重父母。

let str=“7.30*7.40-2.10*1.30+8.10*(2.70+0.60+4.70)+0.30*0.60+1.60*0.70+2.95*2.65+6.00*5.80”
设strArr=str.split(“*”)
让parsedParenthesis=strArr.map(表达式=>{
if(!isNaN(表达式))
返回表达式
让正则表达式=/\([^()]+)\)/g
if(正则表达式测试(表达式)){
让matched=(expression.match(regex))[0]
让exp=matched.split(/[\(\)]/)[1]
让evaluatedExp=math.evaluate(exp)//如果使用mathjs
expression=expression.replace(匹配,求值exp)
}
返回表达式
})
让finalString=parsedParenthesis.join(“*”)
让multiplyArr=finalString.match(/(\d+\.?\d*\*\d+\.?\d*)/g)
multiplyArr.map(exp=>{
如果使用mathjs,则让evaluatedExp=Math.round((Math.evaluate(exp)+Number.EPSILON)*100)/100//
finalString=finalString.replace(exp,evaluatedExp)
})
console.log(finalString)