javascript - 在数组数组上运行函数 - js
问题描述
我试图为三个学生(存储在数组数组中)取 3 个成绩的平均值,然后通过带有 else if 语句的函数运行这些平均值,以检查平均成绩是否分别是 A、B 或 C。
我宁愿不必为每个学生的平均值创建一个单独的函数 else if(所以我知道如何将其扩展到 3 个以上的输入),并且我不确定如何在函数中索引 averageGrades 数组这样我就可以控制台记录 averageGrades 数组的每个元素(学生),并让 else if 语句评估该特定元素(学生)。
我还尝试为每个学生创建一个 averageGrade 变量,以便 averageGrades 数组具有单个值而不是完整的方程,但遇到了同样的问题。
var studentGrades = [
[80, 90, 94],
[80, 90, 94],
[80, 90, 94]
]
var studentAvgerages = [
(studentGrades[0][0] + studentGrades[0][1] + studentGrades[0][2]) / 3,
(studentGrades[1][0] + studentGrades[1][1] + studentGrades[1][2]) / 3,
(studentGrades[2][0] + studentGrades[2][1] + studentGrades[2][2]) / 3
]
for (var i = 0; i <= studentAvgerages.length; i++) {
function evalGrades(studentAvgerages[i]) {
if (studentAvgerages[i] >= 90) {
return "A"
} else if ((studentAvgerages[i] >= 80) && (studentAvgerages[i] < 90)) {
return "B"
} else if ((studentAvgerages[i] >= 70) && (studentAvgerages[i] < 80)) {
return "C"
} else {
return "Failed"
}
}
}
console.log(evalGrades(studentAvgerages[0]))
console.log(evalGrades(studentAvgerages[1]))
console.log(evalGrades(studentAvgerages[2]))
解决方案
您可以采取提前退出的方法来获得成绩。else
由于 return 声明,不需要任何部分。
为了获得平均值,您可以采用动态方法添加值并除以数组的长度。
const
add = (a, b) => a + b,
getAverage = array => array.reduce(add, 0) / array.length,
evalGrades = grade => {
if (grade >= 90) return "A";
if (grade >= 80) return "B";
if (grade >= 70) return "C";
return "Failed";
},
studentGrades = [[80, 90, 94], [80, 70, 60], [76, 82, 91]],
studentAvgerages = studentGrades.map(getAverage);
console.log(...studentAvgerages);
console.log(...studentAvgerages.map(evalGrades));
推荐阅读
- dataweave - 是否可以在依赖于动态数据的条件下使用 Dataweave 掩码或更新函数?
- javascript - 电子 webview 上传文件错误 net::ERR_ACCESS_DENIED
- ios - Swift - TableView 断言错误:cellForRowAtIndexPath 因为:canEditRowAt()
- r - magrittr 管道函数删除列
- java - 在 Java 的 MongoDB 驱动程序中,如何更新文档列表中的文档?
- javascript - 使用 JavaScript 更改 React 页面内容
- kubernetes - 将流量从 pod 转发到在 localhost 上运行的服务
- go - 调用 Updates() 时 GORM 更新空字段?
- shopify - 液体错误:超过集合的唯一句柄的最大数量。(购物)
- arrays - 计算一维数组中 2 个单元格之间的距离