首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将常量字符串值包含到约简值(交叉筛选器和约简)

如何将常量字符串值包含到约简值(交叉筛选器和约简)
EN

Stack Overflow用户
提问于 2020-09-17 14:31:59
回答 1查看 26关注 0票数 1

给出的数据如下:

代码语言:javascript
复制
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一起分组时,将键的类别添加到值中,以供进一步处理。在crossfilterreductio的帮助下,我得到了其他函数可以使用的东西,只是不知道如何将每个键的类别添加到其中。

当前使用的内容:

代码语言:javascript
复制
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();

当前结果:

代码语言:javascript
复制
[
    {
        "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}
        }
    }
]

期望的结果:

代码语言:javascript
复制
[
    {
        "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"}
        }
    }
]

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-09-18 12:18:30

谢谢你@戈登,我从来不知道它会这么便宜,valueList做了个窍门:

代码语言:javascript
复制
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();

给出:

代码语言:javascript
复制
[
    {
        "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"]}
        }
    }
]

谢谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63940324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档