【发布时间】:2017-09-30 15:33:19
【问题描述】:
我有json数组如下,
{
"lstMonths": [
"September"
],
"lstBalances": [
{
"AccountName": "john",
"AccountBalanceOnMonth": [
{
"MonthName": "September",
"Amount": "-28.11"
}
]
},
{
"AccountName": "sanga\n",
"AccountBalanceOnMonth": [
{
"MonthName": "September",
"Amount": "100"
}
]
},
{
"AccountName": "mahela",
"AccountBalanceOnMonth": [
{
"MonthName": "September",
"Amount": "400"
}
]
},
{
"AccountName": "sachin",
"AccountBalanceOnMonth": [
{
"MonthName": "September",
"Amount": "600"
}
]
},
{
"AccountName": "dhoni",
"AccountBalanceOnMonth": [
{
"MonthName": "September",
"Amount": "-500"
}
]
}
]
}
我想按 AccountName 分组并将输出形成为,
{ data: [28.11], label: 'john' },
{ data: [100], label: 'sanga' },
{ data: [400], label: 'mahela' },
{ data: [400], label: 'sachin' }
{ data: [400], label: 'dhoni' }
如果有两个月,那么上面说十月
{ data: [28.11,3], label: 'john' },
{ data: [100,4], label: 'sanga' },
{ data: [400,4], label: 'mahela' },
{ data: [400,4], label: 'sachin' }
{ data: [400,5], label: 'dhoni' }
我尝试像上面那样分组。有帮助吗?
这是我的代码:
var groupBy = function(xs, key) {
return xs.reduce(function(rv, x) {
(rv[x[key]] = rv[x[key]] || []).push(x);
return rv;
}, {});
};
console.log(groupBy(response.lstMonths, 'length'));
请提供一种找到最佳价值的方法。
编辑
json 更多个月,
{ "lstMonths": [ “九月”],“lstBalances”:[ { "帐户名": "约翰\n", “AccountBalanceOnMonth”:[ { "月名": "九月", “金额”:“-28.11” }, { "月名": "八月", “金额”:“-28.11” } ] }, { "AccountName": "sanga\n", “AccountBalanceOnMonth”:[ { "月名": "九月", “金额”:“100” }, { "月名": "八月", “金额”:“233” } ] }, { "账户名": "mahela", “AccountBalanceOnMonth”:[ { "月名": "九月", “金额”:“400” }, { "月名": "八月", “金额”:“32” } ] } ] }
【问题讨论】:
-
更多月份,请提供数据示例。
-
data属性是如何生成的?请解释并重新检查这些值。 -
@NinaScholz 添加了 json
-
@ibrahimmahrir 数据是从金额中生成的,实际上这些是虚拟值。我只是想从金额中获取它
标签: javascript angular typescript