Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 处理/计算两个对象的值并从中生成输出_Javascript_Node.js_Mathjs - Fatal编程技术网

Javascript 处理/计算两个对象的值并从中生成输出

Javascript 处理/计算两个对象的值并从中生成输出,javascript,node.js,mathjs,Javascript,Node.js,Mathjs,我有两个对象-一个包含公式,另一个数组对象包含值。 我想加入俱乐部并计算如下所示的产量 Object-1 { SI:(PxTxR)/100, 比率:P1/P2 } Object-2 [ { P1:34053, P2:45506 }, { P:3403, T:3, R:7.35 P1:34053, P2:45506 } ] 结果: { SI:750.36, 比率:0.74 } 您可以考虑,编译表达式(obj1)和评估范围(obj2的元素) 下面是一个有效的解决方案 const obj1={S

我有两个对象-一个包含公式,另一个数组对象包含值。 我想加入俱乐部并计算如下所示的产量

Object-1

{
SI:(PxTxR)/100,
比率:P1/P2
}
Object-2

[
{
P1:34053,
P2:45506
},
{
P:3403,
T:3,
R:7.35
P1:34053,
P2:45506
}
]
结果:

{
SI:750.36,
比率:0.74
}
您可以考虑,
编译
表达式(
obj1
)和
评估
范围(obj2的元素)

下面是一个有效的解决方案

const obj1={SI:`(P*T*R)/100`,比率:`P1/P2`}
常数obj2=[
{P1:34053,P2:45506},
{P:3403,T:3,R:7.35,P1:34053,P2:45506},
]
const nodeObj1=Object.entries(obj1.map)([expName,exp])=>[
expName,
math.parse(exp.compile(),
])
常量res=obj2.map((obj)=>{
返回Object.fromEntries(
nodeObj1.map([expName,compiledExp])=>{
试一试{
return[expName,compiledExp.evaluate(obj)]
}捕捉(错误){
return[expName,未定义]
}
})
)
})
console.log(res)

您有什么问题?这里的数学很简单。。。