我有一个对象,看起来如下所示:
[
{
"Net_Amount": 499,
"Date": "2022-01-09T18:30:00.000Z",
"Scheme_Name": "CUSTOMERWINBACKJCA01",
"Month": "Jan"
},
{
"Net_Amount": 902,
"Date": "2022-01-09T18:30:00.000Z",
"Scheme_Name": "CUSTOMERWINBACKJCA02",
"Month": "Jan"
},
{
"Net_Amount": 1860,
"Date": "2022-10-01T18:30:00.000Z",
"Scheme_Name": "CUSTOMERCONNECTJCA",
"Month": "Oct"
},
{
"Net_Amount": 1889,
"Date": "2022-11-01T18:30:00.000Z",
"Scheme_Name": "CUSTOMERCONNECTJCA",
"Month": "Nov"
}
]
现在,如果你仔细看,我有一个共同的字段月在对象中,我想合并的对象只基于这个共同的字段。我希望我的对象是如何格式化为:
[
{
"Month": "Jan",
"varData": [{
"Net_Amount": 499,
"Date": "2022-01-09T18:30:00.000Z",
"Scheme_Name": "CUSTOMERWINBACKJCA01"
},
{
"Net_Amount": 902,
"Date": "2022-01-09T18:30:00.000Z",
"Scheme_Name": "CUSTOMERWINBACKJCA02"
}]
},
{
"Month": "Oct",
"varData": [{
"Net_Amount": 1860,
"Date": "2022-10-01T18:30:00.000Z",
"Scheme_Name": "CUSTOMERCONNECTJCA"
}]
},
{
"Month": "Nov",
"varData": [{
"Net_Amount": 1889,
"Date": "2022-11-01T18:30:00.000Z",
"Scheme_Name": "CUSTOMERCONNECTJCA"
}]
}
]
我可以通过迭代数组并检查month是否相同,然后在varData中按下另一个键及其对象值来完成,但我想知道是否有任何快捷方式或内置函数可以用来实现我的目的。
3条答案
按热度按时间ykejflvf1#
我不认为有比迭代数组更好的内置解决方案。
但是如果您使用月份名称作为键,那么代码可能会非常简单(输出不完全相同,但结构非常相似)。
参见jsfiddle。
如果您需要的输出与问题中指定的完全相同,则可以使用以下代码:
参见jsfiddle
dfty9e192#
krcsximq3#