Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

跪求各位大大分享一个更好的解决方法?

$
0
0

现在的需求是:

已经从后台返回了JSON数据,如下:

[{
    "c": 1
}, {
    "f": 1
}, {
    "e": 1
}, {
    "y": 2
}]

然后有许多个较为复杂的计算公式,现在取出一个公式,如下: pow( (pow(c+f, 2) + pow(e, 3) + pow(e + y, 2) ), 3/2)

如何快速的替换 c,f,e,y ? 然后我写了一个类似如下的处理代码,但是被老大否决了(PS:当时心中有一万只草泥马飞过)?

"use strict"

let ex1 = "pow( (pow(c+f, 2) + pow(e, 3) + pow(e + y, 2) ), 3/2)"

let returnV = [{
    "c": 1
}, {
    "f": 1
}, {
    "e": 1
}, {
    "y": 2
}]

let Reg

let ex1 = expression
    .replace(/pow/g, "Math.pow")

for (let i = 0; i < returnV.length; i++) {
    let item = returnV[i]
    let key = Object.keys(item)

    Reg = new RegExp(key, 'g')
    ex1 = ex1.replace(Reg, returnV[i][key])
}

console.log(eval(ex1))

求各位大大分享一下有没有更好的处理办法,送上我的膝盖~


Viewing all articles
Browse latest Browse all 14821

Trending Articles