【发布时间】:2014-02-19 08:03:49
【问题描述】:
我在 Jquery 中总结和分组我的对象时遇到问题,因为我想按国家/地区分组,然后根据子期间 4、5 和 6 对 col1 内的值进行总计。 col1、col2、col3 是动态的,但使用这个只是一个例子。
我需要的是按国家/地区获取总数,该总数存储在国家变量中,每个子期间的总计存储在列变量中,总计数存储在平均值变量中。
这是我在 jsfiddle 中的代码:
我的对象:
var g_jsonData =
[
{
"Country": "Spain",
"Year": "2000",
"Subperiod": "4",
"col1": "75",
"col2": "500",
"col3": "200"
},
{
"Country": "Spain",
"Year": "2001",
"Subperiod": "4",
"col1": "50",
"col2": "500",
"col3": "300"
},
{
"Country": "Spain",
"Year": "2002",
"Subperiod": "4",
"col1": "50",
"col2": "200",
"col3": "300"
},
{
"Country": "Spain",
"Year": "2003",
"Subperiod": "4",
"col1": "",
"col2": "200",
"col3": "300"
},
{
"Country": "Spain",
"Year": "2005",
"Subperiod": "5",
"col1": "125",
"col2": "500",
"col3": "300"
},
{
"Country": "Spain",
"Year": "2012",
"Subperiod": "6",
"col1": "100.75",
"col2": "500",
"col3": "200"
},
{
"Country": "Spain",
"Year": "2013",
"Subperiod": "6",
"col1": "200",
"col2": "500",
"col3": "300"
},
{
"Country": "France",
"Year": "2000",
"Subperiod": "4",
"col1": "100",
"col2": "100",
"col3": "300"
},
{
"Country": "France",
"Year": "2001",
"Subperiod": "4",
"col1": "100",
"col2": "100",
"col3": "300"
},
{
"Country": "France",
"Year": "2002",
"Subperiod": "4",
"col1": "100",
"col2": "200",
"col3": "300"
},
{
"Country": "France",
"Year": "2005",
"Subperiod": "5",
"col1": "100",
"col2": "200",
"col3": "300"
},
{
"Country": "France",
"Year": "2012",
"Subperiod": "6",
"col1": "100",
"col2": "100",
"col3": "300"
},
{
"Country": "France",
"Year": "2013",
"Subperiod": "6",
"col1": "100",
"col2": "100",
"col3": "300"
}];
这是我想要得到的最终结果,这是基于对每个国家/地区每个子周期的 col1 进行汇总。
countries =
{
"Spain":{
"4":175,
"5":125,
"6":300.75
},
"France":{
"4":300,
"5":100,
"6":200,
}
}
子期间 4、5、6 的总计应显示为:
columns =
{
"4":475,
"5":225,
"6":500.75
}
我还想获得每个国家、每个子时段的总数:
averages =
{
"Spain":{
"4":3,
"5":1,
"6":2
},
"France":{
"4":3,
"5":1,
"6":2
}
}
我想尽量坚持我的代码。 谢谢,感谢您的帮助。
【问题讨论】:
-
averages中的值应该如何计算? -
@Cerbrus 我将使用西班牙作为 col1 子周期 4 的示例,它有 75 + 50 + 50 + ""。所以总计数为 4。但是,因为在 Subperiod 4 Year 2003 中有一个空白值,我们不计算它。所以总数是 3。这有意义吗?
-
@Cerbrus 可能平均值不是一个好的变量名称,因为它可能应该称为 Count。
-
啊,是的,
count会更有意义:P
标签: javascript jquery json grouping summary