微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将常量字符串值包含为减少的值Crossfilter和Reductio

如何解决如何将常量字符串值包含为减少的值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
    }
]

当按名称分组价格和数量的总和时,我想将键的类别添加到值中以进行进一步处理。在crossfilterreductio的帮助下,我得到了其他功能所消耗的东西,只是我不知道如何向其中添加每个键的类别。

我目前正在使用什么:

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 举报,一经查实,本站将立刻删除。