如何解析这些字符串响应以使用某些提取的值执行某些计算

时间:2018-02-14 05:17:08

标签: javascript node.js

我正在将我的系统与第三方API集成。集成或多或少已完成,但我在解析响应的一部分时遇到了一些问题。作为回应,他们给我发了一个字符串,如下所示:

EXECUTED @ 9.1539(3.0) was PARTIALLY FILLED @ 9.1531(3.0)
EXECUTED @ 9.1539(3.0)
PARTIALLY FILLED @ 9.16(5.5)

现在,我需要解析这些响应以获得如下计算结果:

对于:EXECUTED @ 9.1539(3.0) was PARTIALLY FILLED @ 9.1531(3.5)

我需要计算(9.1539*3.0 + 9.1531*3.5)

对于:EXECUTED @ 9.1539(3.0)

我需要计算9.1539*3.0

对于:PARTIALLY FILLED @ 9.16(5.5)

我需要计算9.16*5.5

我会发布一些代码,但我无法弄清楚从哪里开始。一些帮助会被批评。

2 个答案:

答案 0 :(得分:1)

当您知道如何使用Stringmatchsplit方法以及Arraymapreduce方法时,很容易他们在上面的链接中记录在MDN上



var strs = [
    'EXECUTED @ 9.1539(3.0) was PARTIALLY FILLED @ 9.1531(3.0)',
    'EXECUTED @ 9.1539(3.0)',
    'PARTIALLY FILLED @ 9.16(5.5)'
]

console.log(strs.map(s=>s.match(/\s@\s([\d]+(\.[\d]+|))\(([\d+](\.[\d]+|))\)/g).reduce((a,b)=>a+b.split(/\s@\s/)[1].split(/\)/)[0].split(/\(/).map(Number).reduce((a,b)=>a*b),0)));




答案 1 :(得分:0)

建议的解决方案

{{1}}