gpt4 book ai didi

javascript - 如何计算javascript或下划线中json数据的平均值?

转载 作者:行者123 更新时间:2023-11-30 12:38:22 25 4
gpt4 key购买 nike

我知道underscore.js在Collection Functions中有max()min()函数,但是为什么没有avg()函数?

我想计算这三个学生的数学平均值,必须排除小于 0 的平均值。我可以使用 for 或 foreach,但是如何使用下划线函数或其他 js 函数,如 map 或 grep?

json数据是这样的:

{ "Data": [
{ "StudentName": "SA",
"Math": {"AvgValue": 80, "MaxValue": 99, "MinValue": 60 },
"English": {"AvgValue": 76, "MaxValue": 80, "MinValue": 55 } },
{ "StudentName": "SB",
"Math": {"AvgValue": 75, "MaxValue": 88, "MinValue": 34 },
"English": {"AvgValue":98, "MaxValue": 100, "MinValue": 90 } },
{ "StudentName": "SC",
"Math": {"AvgValue": -1, "MaxValue": -1, "MinValue": -1 },
"English": {"AvgValue":-1, "MaxValue": -1, "MinValue": -1 } }
], "Total": 3, "AggregateResults": null, "Errors": null }

最佳答案

why does it not have avg() function?

Javascript 库作者必须权衡功能的实用性和它对库的大小造成的成本,尤其是当库具有非常通用的用途时。

Underscore 的目标表述为:

It’s the answer to the question: “If I sit down in front of a blank HTML page, and want to start being productive immediately, what do I need?”

我认为 average 可能太容易写了,而且很少需要用到这个描述。

function mathAverage() {
function mathScores() {
return data['Data'].map(function (student) {
return student['Math']['AvgValue'];
});
}
function add(x, y) { return x + y; }
function sum(xs) { return _.reduce(xs, add); }
function average(xs) { return sum(xs) / xs.length;}
function nonnegative(x) { return x >= 0; }
return average(mathScores().filter(nonnegative));
}

关于javascript - 如何计算javascript或下划线中json数据的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25347207/

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