javascript-生成并打印所有学生的总平均最终成绩

javascript-生成并打印所有学生的总平均最终成绩,javascript,arrays,Javascript,Arrays,因此,我试图生成并打印所有学生的总平均期末成绩,权重为:作业=40%,辅导=10%,考试=50%。我不断遇到不同的错误,说我缺少一个括号或什么的,我也觉得我做得不对。我想知道是否有人能把我推向正确的方向 让学生=[{ fname:“简”, 名称:“火盆”, snum:“100366942”, agrade:67.59127376966494, t等级:64.86530868914188, egrade:70.52944558104066 }, { fname:“里卡多”, 名字:“艾伦”, s

因此,我试图生成并打印所有学生的总平均期末成绩,权重为:作业=40%,辅导=10%,考试=50%。我不断遇到不同的错误,说我缺少一个括号或什么的,我也觉得我做得不对。我想知道是否有人能把我推向正确的方向

让学生=[{
fname:“简”,
名称:“火盆”,
snum:“100366942”,
agrade:67.59127376966494,
t等级:64.86530868914188,
egrade:70.52944558104066
}, {
fname:“里卡多”,
名字:“艾伦”,
snum:“100345641”,
agrade:65.80370345301014,
t等级:75.40211705841241,
egrade:55.39348896202821
}, {
fname:“玛丽”,
名字:“埃尔南德斯”,
snum:“100221207”,
agrade:71.20761408935981,
t等级:71.37529197926764,
egrade:75.82038980457698
}, {
fname:“詹姆斯”,
名字:“约翰逊”,
snum:“100200842”,
agrade:72.579131829902,
t等级:81.65883679807183,
egrade:85.19664228946989
}, {
fname:“基因”,
名称:“Jeanlouis”,
snum:“100341666”,
agrade:74.16481515505846,
t等级:68.20592386917109,
egrade:78.25975050135006
}];
var examAverage=students.reduce(函数(累加器,学生){
返回累加器+student.egrade;
}, 0);
var assignmentAverage=students.reduce(函数(累加器,学生){
返回累加器+student.agrade;
}, 0);
var tutorialAverage=students.reduce(函数(累加器、学生){
返回累加器+student.tgrade;
}, 0);
var totalAverage=((examAverage*0.5)+(assignmentAverage*0.4)+(tutorialAverage*0.1));
console.log(总平均值)您缺少关闭函数的
。它现在像一个符咒一样工作,请检查以下内容:

var学生=[{
fname:“简”,
名称:“火盆”,
snum:“100366942”,
agrade:67.59127376966494,
t等级:64.86530868914188,
egrade:70.52944558104066
}, {
fname:“里卡多”,
名字:“艾伦”,
snum:“100345641”,
agrade:65.80370345301014,
t等级:75.40211705841241,
egrade:55.39348896202821
}, {
fname:“玛丽”,
名字:“埃尔南德斯”,
snum:“100221207”,
agrade:71.20761408935981,
t等级:71.37529197926764,
egrade:75.82038980457698
}, {
fname:“詹姆斯”,
名字:“约翰逊”,
snum:“100200842”,
agrade:72.579131829902,
t等级:81.65883679807183,
egrade:85.19664228946989
}, {
fname:“基因”,
名称:“Jeanlouis”,
snum:“100341666”,
agrade:74.16481515505846,
t等级:68.20592386917109,
egrade:78.25975050135006
}];
var examAverage=students.reduce(函数(累加器,学生){
返回累加器+student.egrade;
}, 0);
var assignmentAverage=students.reduce(函数(累加器,学生){
返回累加器+student.agrade;
}, 0);
var tutorialAverage=students.reduce(函数(累加器、学生){
返回累加器+student.tgrade;
}, 0);
var totalAverage=((examAverage*0.5)+(assignmentAverage*0.4)+(tutorialAverage*0.1));

console.log(总平均值)
您没有计算
egrade、agrade和tgrade的平均值。你必须先算出学生数组的长度,然后再算出平均数

另外,我建议您不要使用multiple
.reduce()
。通过一次迭代(
.reduce
),您可以轻松计算总和

var sum = students.reduce(function (acc, cur) {
    acc.egrade += cur.egrade;
    acc.agrade += cur.agrade;
    acc.tgrade += cur.tgrade;
    return acc;
}, {egrade: 0, agrade: 0, tgrade: 0});

var totalAverage = (sum.egrade / students.length) * 0.5 + (sum.agrade / students.length) * 0.4 + (sum.tgrade / students.length) * 0.1;
console.log(totalAverage);

我建议使用Abstract方法,使用一些辅助数组,一个用于想要的键和权重

let students=[{fname:“Jane”,lname:“Brazier”,snum:“100366942”,agrade:67.59127376966494,tgrade:64.86530868914188,egrade:70.52944558104066},{fname:“Ricardo”,lname:“Allen”,snum:“100345641”,agrade:65.80370345301014,tgrade:75.4021705841241,egrade:55.393488962021},{fname:“Mary”,lname:“Hernandez”,snum:“100221207”,agrade:71.20761408935981,tgrade:71.37529197926764,egrade:75.82038980457698},{fname:“詹姆斯”,lname:“约翰逊”,snum:“100200842”,agrade:72.579131829902,tgrade:81.65883679807183,egrade:85.19664228946989},{fname:“吉恩”,lname:“Jeanlouis”,snum:“100341666“,agrade:74.16481515505846,tgrade:68.20592386917109,egrade:78.25975050135006}”,
键=['agrade','tgrade','egrade'],
权重=[0.4,0.1,0.5],
sums=student.reduce(函数(累加器,student){
键。forEach(功能(键){
累加器[键]=(累加器[键]| | 0)+学生[键];
});
回流蓄能器;
}, {}),
totalAverage=权重。减少(函数(总和、权重、指数){
返回总和+总和[键[索引]]/students.length*权重;
}, 0);

console.log(总平均值)更改,0};至(0);您正在开始使用括号“(“但右大括号”}”下次在JS上提问时使用可运行的代码段。然后,请注意,语法错误在您身上……您必须在发布之前掌握基本知识。我将其更改为0);但现在它说“意外标记”@gray检查你的脚本人。。。关闭括号/括号等。