繁体   English   中英

它在我的控制台中不断返回 NaN(Not a Number)

[英]It keeps returning NaN(Not a Number) in my console

这是带有数组对象

const studentGrades = [
    [{ studentID: 1, Q1: 89.3, Q2: 91.2, Q3: 93.3, Q4: 89.8 }],
    [{ studentID: 2, Q1: 69.2, Q2: 71.3, Q3: 76.5, Q4: 81.9 }],
    [{ studentID: 3, Q1: 95.7, Q2: 91.4, Q3: 90.7, Q4: 85.6 }],
    [{ studentID: 4, Q1: 86.9, Q2: 74.5, Q3: 83.3, Q4: 86.1 }],
    [{ studentID: 5, Q1: 70.9, Q2: 73.8, Q3: 80.2, Q4: 81.8 }]
];

我尝试执行以下操作,它必须有 1 个小数点并且必须是一个数字:

studentGrades.forEach( function(grade){
    
    grade.average = grade.Q1 + grade.Q2 + grade.Q3 + grade.Q4/4
    parseFloat(grade.average).toFixed(1);
    
});

但它一直在我的控制台中返回NaN

studentGrades 是一个数组数组,如果不需要,您应该删除实际 studentGrade 之外的括号,并使其像这样:

const studentGrades = [
{ studentID: 1, Q1: 89.3, Q2: 91.2, Q3: 93.3, Q4: 89.8 },
{ studentID: 2, Q1: 69.2, Q2: 71.3, Q3: 76.5, Q4: 81.9 },
{ studentID: 3, Q1: 95.7, Q2: 91.4, Q3: 90.7, Q4: 85.6 },
{ studentID: 4, Q1: 86.9, Q2: 74.5, Q3: 83.3, Q4: 86.1 },
{ studentID: 5, Q1: 70.9, Q2: 73.8, Q3: 80.2, Q4: 81.8 }
];

您的数据是数组内的 Array,因此您需要添加grade[0]

 const studentGrades = [ [{ studentID: 1, Q1: 89.3, Q2: 91.2, Q3: 93.3, Q4: 89.8 }], [{ studentID: 2, Q1: 69.2, Q2: 71.3, Q3: 76.5, Q4: 81.9 }], [{ studentID: 3, Q1: 95.7, Q2: 91.4, Q3: 90.7, Q4: 85.6 }], [{ studentID: 4, Q1: 86.9, Q2: 74.5, Q3: 83.3, Q4: 86.1 }], [{ studentID: 5, Q1: 70.9, Q2: 73.8, Q3: 80.2, Q4: 81.8 }] ]; studentGrades.forEach( function(grade){ grade[0].average = (grade[0].Q1 + grade[0].Q2 + grade[0].Q3 + grade[0].Q4)/4; parseFloat(grade[0].average).toFixed(1); }); console.log(studentGrades);

您必须添加 [0] 来评分,因为您的 studentGrades 是一个数组数组。

studentGrades.forEach( function(grade){
        grade.average = (grade[0].Q1 + grade[0].Q2 + grade[0].Q3 + grade[0].Q4) / 4;
        parseFloat(grade.average).toFixed(1);
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM