【发布时间】:2017-09-22 11:38:19
【问题描述】:
我有以下对象数组。每个对象中都有一对可供两个人使用的对象。它保存分数,例如Bob 的第 1 场比赛有 10 分,然后第 2 场比赛有 9 分等。
var arr = [{
"bob": {
"1": "10",
"2": "9",
"3": "9",
"4": "10",
"5": "9",
"6": "7",
"7": "10",
"8": "10",
"9": "10",
"10": "9",
"11": "10",
"12": "8"
},
"max": {
"1": "9",
"2": "10",
"3": "10",
"4": "8",
"5": "10",
"6": "10",
"7": "8",
"8": "9",
"9": "9",
"10": "10",
"11": "9",
"12": "10"
}
},
{
"bob": {
"1": "10",
"2": "9",
"3": "9",
"4": "10",
"5": "9",
"6": "7",
"7": "10",
"8": "10",
"9": "10",
"10": "9",
"11": "10",
"12": "8"
},
"max": {
"1": "9",
"2": "10",
"3": "10",
"4": "8",
"5": "10",
"6": "10",
"7": "8",
"8": "9",
"9": "9",
"10": "10",
"11": "9",
"12": "10"
}
},
{
"bob": {
"1": "10",
"2": "9",
"3": "9",
"4": "10",
"5": "9",
"6": "7",
"7": "10",
"8": "10",
"9": "10",
"10": "9",
"11": "10",
"12": "8"
},
"max": {
"1": "9",
"2": "10",
"3": "10",
"4": "8",
"5": "10",
"6": "10",
"7": "8",
"8": "9",
"9": "9",
"10": "10",
"11": "9",
"12": "10"
}
}
]
如何循环遍历每对对象(bob 和 max)并创建所有对象的平均值?我发现循环内的循环真的很混乱......我正在努力如何写这个问题。
最终目标是拥有一对对象,其值将从数组中所有先前的对象中取平均值。例如,对于每个人,我需要将每个人的分数相加(分数 1 - 12),然后创建一个最终的平均分数。我希望这是有道理的?就我所尝试的而言,我尝试操纵许多其他 SO 答案以满足我的需求,但我一直在错误地遇到错误,因此不值得与此一起发布......
// Final averaged scores for each person based on the total data available
[{
"bob": {
"1": "10",
"2": "9",
"3": "9",
"4": "10",
"5": "9",
"6": "7",
"7": "10",
"8": "10",
"9": "10",
"10": "9",
"11": "10",
"12": "8"
},
"max": {
"1": "9",
"2": "10",
"3": "10",
"4": "8",
"5": "10",
"6": "10",
"7": "8",
"8": "9",
"9": "9",
"10": "10",
"11": "9",
"12": "10"
}
}]
【问题讨论】:
-
如果要使用数字键,为什么不使用数组?
-
因为它在脚本的其他地方与此问题无关。
-
我不清楚你的目标。您是否想要 Bob 的所有“1”、“2”等分数的平均值(Max 也一样)?
-
是的,所以...取每个对象中的所有 bobs 分数并创建一个平均分数对象,例如
-
为什么将分数存储为字符串?这种数据结构确实效率低下。
标签: javascript jquery json object