给出的数据如下:
data = [
{
"partner": "ABCD",
"category": "CORTICOSTERIODS",
"name": "NP Slow Meedrol Methylprednisolone Sodium Succinate Injection USP 500mg x 1 Vial",
"price_sum": 22288.00,
"qty_sum": 50.00000000000000000
},
{
"partner": "ABCD",
"category": "MEDICAL DISPOSABLE",
"name": "4 INCH CAST FIBREGLASS",
"price_sum": 135324.00,
"qty_sum": 63.00000000000000000
},
{
"partner": "ABCD",
"category": "DERMATOLOGICALS",
"name": "ABF CREAM 20G",
"price_sum": 150169.29,
"qty_sum": 150.00000000000000000
},
{
"partner": "CDEF",
"category": "CORTICOSTERIODS",
"name": "NP Slow Meedrol Methylprednisolone Sodium Succinate Injection USP 500mg x 1 Vial",
"price_sum": 22288.00,
"qty_sum": 50.00000000000000000
},
{
"partner": "CDEF",
"category": "MEDICAL DISPOSABLE",
"name": "4 INCH CAST FIBREGLASS",
"price_sum": 135324.00,
"qty_sum": 63.00000000000000000
}
]我想在按名称和价格和qtys一起分组时,将键的类别添加到值中,以供进一步处理。在crossfilter和reductio的帮助下,我得到了其他函数可以使用的东西,只是不知道如何将每个键的类别添加到其中。
当前使用的内容:
function categ_tab(data){
// The needed data should be grouped by names summed up by qty and price
// Thus crossfilter and reductio will be used to take the burden off server
var group = crossfilter(data).dimension(function(d) { return d.name; }).group(),
reducer = reductio();
// sum up qty and price
reducer.value("qty").sum(function(d) { return d.qty_sum; });
reducer.value("price").sum(function(d) { return d.price_sum; });
return reducer(group).all();当前结果:
[
{
"key":"4 INCH CAST FIBREGLASS",
"value":{
"qty":{"sum":126},
"price":{"sum":270648}
}
},
{
"key":"ABF CREAM 20G",
"value":{
"qty":{"sum":150},
"price":{"sum":150169.29}
}
},
{
"key":"NP Slow Meedrol Methylprednisolone Sodium Succinate Injection USP 500mg x 1 Vial",
"value":{
"qty":{"sum":100},
"price":{"sum":44576}
}
}
]期望的结果:
[
{
"key":"4 INCH CAST FIBREGLASS",
"value":{
"qty":{"sum":126},
"price":{"sum":270648},
"category": {"iDontCare":"MEDICAL DISPOSABLE"}
}
},
{
"key":"ABF CREAM 20G",
"value":{
"qty":{"sum":150},
"price":{"sum":150169.29},
"category": {"iDontCare":"DERMATOLOGICALS"}
}
},
{
"key":"NP Slow Meedrol Methylprednisolone Sodium Succinate Injection USP 500mg x 1 Vial",
"value":{
"qty":{"sum":100},
"price":{"sum":44576},
"category": {"iDontCare":"CORTICOSTERIODS"}
}
}
]谢谢。
发布于 2020-09-18 12:18:30
谢谢你@戈登,我从来不知道它会这么便宜,valueList做了个窍门:
function categ_tab(data){
// The needed data should be grouped by names summed up by qty and price
// Thus crossfilter and reductio will be used to take the burden off server
var group = crossfilter(data).dimension(function(d) { return d.name; }).group(),
reducer = reductio();
// sum up qty and price
reducer.value("qty").sum(function(d) { return d.qty_sum; });
reducer.value("price").sum(function(d) { return d.price_sum; });
reducer.value("category").valueList(function (d) { return d.category;});
return reducer(group).all();给出:
[
{
"key":"4 INCH CAST FIBREGLASS",
"value":{
"qty":{"sum":126},
"price":{"sum":270648},
"category": {"valueList":["MEDICAL DISPOSABLE"]}
}
},
{
"key":"ABF CREAM 20G",
"value":{
"qty":{"sum":150},
"price":{"sum":150169.29},
"category": {"valueList":["DERMATOLOGICALS"]}
}
},
{
"key":"NP Slow Meedrol Methylprednisolone Sodium Succinate Injection USP 500mg x 1 Vial",
"value":{
"qty":{"sum":100},
"price":{"sum":44576},
"category": {"valueList":["CORTICOSTERIODS"]}
}
}
]谢谢。
https://stackoverflow.com/questions/63940324
复制相似问题