我在 Javascript 函数中有以下 JSON 数据(此处已简化):
var data = [
{ Expiry: "2013-01-02T00:00:00", EndDate: "2013-01-16T00:00:00", Category: 10, Amount: 14.53 },
{ Expiry: "2013-01-02T00:00:00", EndDate: "2013-01-16T00:00:00", Category: 25, Amount: 14.86 },
{ Expiry: "2013-02-06T00:00:00", EndDate: "2013-02-20T00:00:00", Category: 10, Amount: 14.43 },
{ Expiry: "2013-02-06T00:00:00", EndDate: "2013-02-20T00:00:00", Category: 25, Amount: 14.76 }
];
注意:对于任何特定的 Expiry 值,EndDate 值将始终相同。
现在理想情况下,我希望最后有以下 JSON(按到期日期分组,并注意在属性名称中使用 Category 值):
[
{
Expiry: 2013/1/2, (note: not fussed about the date format)
EndDate: 2013/1/16,
Category10: 14.53,
Category25: 14.86
},
{
Expiry: 2013/2/6,
EndDate: 2013/2/20,
Category10: 14.43,
Category25: 14.76
},
]
但不确定我是否会一次完成所有这些,因此可以在每个日期对下满足一系列类别和金额,然后我可以处理这些类别和金额以某种方式获得上述内容:
[
{
Expiry: 2013/1/2,
EndDate: 2013/1/16,
Categories: [ { 10, 25 } ],
Amounts: [ { 14.53, 14.86 } ]
},
{
Expiry: 2013/2/6,
EndDate: 2013/2/20,
Categories: [ { 10, 25 } ],
Amounts: [ { 14.43, 14.76 } ]
},
]
我正在尝试使用 linq.js 库中的 groupby 函数来获取必要的 JSON,但无法获取我需要的内容。
具有以下内容:
var result = linq.groupBy("$.Expiry", "", "k,e => { Expiry: k, Categories: e.select('$.Category').toArray(), Amounts: e.select('$.Amount').toArray()}").toArray();
我得到:
[
{
Expiry: 2013/1/2,
Categories: [ { 10, 25 } ],
Amounts: [ { 14.53, 14.86 } ]
},
{
Expiry: 2013/2/6,
Categories: [ { 10, 25 } ],
Amounts: [ { 14.43, 14.76 } ]
},
]
但我无法锻炼如何获得 EndDate ......
有人可以帮忙吗?
塔,