我正在构建一个 UI 以允许用户将一些 FIX 消息数据切片和切块到一些 d3 图表中。FIX 消息带有一些字段和值对,因此我将它们处理成包含这些对的对象数组。例如
let obj = [
{'8': 'FIX.4.2', 'Account': 'Client1', 'Symbol': '1234.T', 'Side': '1', 'LastPx': 6000, 'LastQty': 100},
{'8': 'FIX.4.2', 'Account': 'Client2', 'Symbol': '1235.T', 'Side': '1', 'LastPx': 7000, 'LastQty': 200},
{'8': 'FIX.4.2', 'Account': 'Client1', 'Symbol': '1234.T', 'Side': '2', 'LastPx': 4000, 'LastQty': 50},
{'8': 'FIX.4.2', 'Account': 'Client2', 'Symbol': '1234.T', 'Side': '2', 'LastPx': 5000, 'LastQty': 200},
{'8': 'FIX.4.2', 'Account': 'Client1', 'Symbol': '1234.T', 'Side': '5', 'LastPx': 4500, 'LastQty': 100},
{'8': 'FIX.4.2', 'Account': 'Client1', 'Symbol': '1235.T', 'Side': '5', 'LastPx': 6000, 'LastQty': 100},
{'8': 'FIX.4.2', 'Account': 'Client2', 'Symbol': '1234.T', 'Side': '5', 'LastPx': 5500, 'LastQty': 150}
]
当我想要一个允许以下输入和输出的函数时,它变得具有挑战性:
function slicer_and_dicer(obj, arr){
......
}
其中 obj 是解析后的 FIX 对象,数组是您要将对象嵌套到的字段。数组中的元素顺序很重要。例如
slicer_and_dicer(obj, ['Account', 'Symbol'])
将给出嵌套的 json 对象的输出,该对象对下面的 totalnv = lastpx * lastqty 求和:
{
'Client1':{
'1234.T':{ 'TotalNV': 1250000 },
'1235.T':{ 'TotalNV': 600000 }
},
'Client2':{
'1234.T':{ 'TotalNV': 1825000 },
'1235.T':{ 'TotalNV': 1400000 }
}
}
如果数组中的给定元素是已知的,我可以构建一个函数来创建一个类似的对象,但如果它变成动态的,例如添加一个新级别的“Side”
slicer_and_dicer(obj, ['Account', 'Symbol', 'Side'])
有人可以分享解决方案吗?谢谢!
PIPIONE
相关分类