gpt4 book ai didi

javascript - 我如何总结这些 Javascript 值?

转载 作者:行者123 更新时间:2023-11-29 21:01:16 25 4
gpt4 key购买 nike

我有以下对象数组。每个对象中都有一对对象供两个人使用。它持有分数,例如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"
}
}]

最佳答案

您可以采用单循环方法来计算所需的平均值。该提案以 ES5 为特色。

变量:

  • r:Array#reduce 中的临时结果,
  • o:对象,数组的一项,
  • a:调用数组的引用,长度需要,
  • k, l:嵌套对象的键。

模式:

var array = [{ 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" } }],
result = array.reduce(function (r, o, _, a) {
Object.keys(o).forEach(function (k) {
r[k] = r[k] || {};
Object.keys(o[k]).forEach(function (l) {
r[k][l] = (r[k][l] || 0) + o[k][l] / a.length;
});
});
return r;
}, {});

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 我如何总结这些 Javascript 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46363883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com