如何解决如何将常量字符串值包含为减少的值Crossfilter和Reductio
给出的数据如下:
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
},"category": "DERMATOLOGICALS","name": "ABF CREAM 20G","price_sum": 150169.29,"qty_sum": 150.00000000000000000
},{
"partner": "CDEF",{
"partner": "CDEF","qty_sum": 63.00000000000000000
}
]
当按名称分组价格和数量的总和时,我想将键的类别添加到值中以进行进一步处理。在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","price":{"sum":270648},"category": {"iDontCare":"MEDICAL disPOSABLE"}
}
},"price":{"sum":150169.29},"category": {"iDontCare":"DERMATOLOGICALS"}
}
},"price":{"sum":44576},"category": {"iDontCare":"CORTICOSTERIODS"}
}
}
]
谢谢。
解决方法
谢谢@Gordon,我从来不知道它会这么便宜,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"]}
}
}
]
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。