簡體   English   中英

使用下划線分組依據來構造我的數組

[英]Using underscore group by to structure my array

我有以下格式的數組

[
{
    "duedate": "15-feb-2014",
    "alias": "electronus",
    "agent": "anonymous",
    "name": ""
},
{
    "duedate": "15-feb-2014",
    "alias": "luminous",
    "agent": "anonymous",
    "name": ""
},
{
    "duedate": "16-feb-2014",
    "alias": "GSM",
    "agent": "anonymous",
    "name": ""
}
]

下划線分組方法使我可以使用屬性對數組進行分組,在我的情況下可以使用到期日。 這將返回一個這樣的數組

{
"15-Feb-2014": [
    {
        "duedate": "15-feb-2014",
        "alias": "electronus",
        "agent": "anonymous",
        "name": ""
    },
    {
        "duedate": "15-feb-2014",
        "alias": "luminous",
        "agent": "anonymous",
        "name": ""
    }
],
"16-Feb-2014": [
    {
        "duedate": "16-feb-2014",
        "alias": "GSM",
        "agent": "anonymous",
        "name": ""
    }
]
}

有沒有可能我有一個像這樣的數組:

[
{
    "duedate": "15-feb-2014",
    "myValues": [
        {
            "duedate": "15-feb-2014",
            "alias": "electronus",
            "agent": "anonymous",
            "name": ""
        },
        {
            "duedate": "15-feb-2014",
            "alias": "luminous",
            "agent": "anonymous",
            "name": ""
        }
    ]
},
{
    "duedate": "16-feb-2014",
    "myValues": [
        {
            "duedate": "16-feb-2014",
            "alias": "GSM",
            "agent": "anonymous",
            "name": ""
        }
    ]
}
]

因此,我可以在每個截止日期內包含多個數組值,以便可以解析它以填充無法更改的模板。

我已經為此苦苦掙扎了一段時間。 任何幫助將不勝感激。

您只需要在groupBy()之后調用map() groupBy() ...

var groupedArray = _.chain(list)
                       .groupBy(function (x) { return x.duedate })
                       .map(function (value, date) { 
                           return {
                               duedate: date,
                               myValues: value
                           };
                       })
                       .value();

JS小提琴: http//jsfiddle.net/t2tCa/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM