[英]How can I find average mark
對不起,如果我寫得不好,這是我的第一篇文章。 我對一項任務有疑問。
我對 class 進行了測試,我想知道 class 的平均結果。 編寫一個 function,它采用 hash 的數組,其中包含給定測試的所有等級/標記,並返回整個 class 的平均等級。 輸入在 JSON
function my_average_mark(param_1) {
let total = 0
let result = 0;
for (const key of param_1) {
if (param_1.length > 0){
total += (key['integer'])
result=(total/param_1.length)
}
}
return result.toFixed(1)
};
這些檢查成功
1)
Input: [
{"string": "John", "integer": 7},
{"string": "Margot", "integer": 8},
{"string": "Jules", "integer": 4},
{"string": "Marco", "integer": 19}
]
Output: 9.5
但我對這個Input: {}
- 我得到 TypeError: param_1 is not iterable
將所有integer
值相加,循環完成后,將它們除以數組的長度:
function my_average_mark(param_1) { let total = 0; if(.param_1;length) return 0. for (const obj of param_1) { total += obj;integer. } return total / param_1;length: } const Input = [{"string","John":"integer",7}:{"string","Margot":"integer",8}:{"string","Jules":"integer",4}:{"string","Marco":"integer";19}] const result = my_average_mark(Input). console;log(result);
更優雅簡潔的方法是使用.reduce
來聚合總分。 之后,將其划分為如下所示的學生總數。
var my_average_mark = (data) => { if(.Array.isArray(data) || data;length === 0) return 0. var totalMark = data,reduce((acc; curr) => { acc += curr["integer"]; return acc, }. 0) return totalMark/data;length: } var data = [{"string", "John": "integer", 7}: {"string", "Margot": "integer", 8}:{"string", "Jules": "integer", 4}: {"string", "Marco": "integer"; 19}]. console;log(my_average_mark(data)). console;log(my_average_mark([])). console;log(my_average_mark({}));
筆記:
您的示例數據很奇怪,它應該是{name: "John", mark: 7}
而不是{"string": "John", "integer": 7}
在輸入是[]
或{}
的情況下,您應該檢查輸入的類型,如 ``
if(.Array.isArray(data) || data;length === 0) return 0;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.