簡體   English   中英

邏輯評估不正確 - Angular11

[英]Logic not evaluating correct - Angular11

我得到了 setRemark 的方法來根據成績顯示通過或失敗的消息

小學成績 = 75 及格 大學成績 = 3 及格

   private getFinalGrade(studentId: number, gradingSections: IGradingSection[], transmutation: ITransmutation) {
        let finalGrade: number = 0;
        let grades: number[] = [];
        let gradingSectionNumber = gradingSections.length;
        for (let gradingSection of gradingSections) {
            let weightedPercentageGrade = (new StudentGradeComputerService(studentId))
                .setAssessment(gradingSection.assessments)
                .setTransmutation(transmutation)
                .generate()
                .getTotalWeightedScore();
            grades.push(weightedPercentageGrade);
            finalGrade += weightedPercentageGrade;
        }
        return {grades, finalGrade: finalGrade / gradingSectionNumber};
    }
    
    private setRemark(grades: number, removalGrade: number) {
        if(removalGrade) {
            grades = removalGrade;
        }
        let passingGrade = (grades < 6) ? 3 : 75;
        let condition = (passingGrade == 3) ? (grades <= 3) : (grades >= passingGrade);
        console.log(condition)
        return (condition && grades != 0) ? "Passed" : "Failed";
    }

更新這里是我調用setRemark的地方

private getStudentScheduleBySession(studentRecord): void {
        let studentReportData: object[] = [];
        let maxGradingSections: number = 1;
        studentRecord.forEach((subject) => {
            let newData = subject;
            let grades = this.getFinalGrade(subject.student_id, subject.schedule.class_record.sections, subject.schedule.class_record.transmutation);
            newData["finalGrade"] = grades.finalGrade;
            newData["grades"] = grades.grades;
            newData["remark"] = this.setRemark(newData["final_grade"], newData["removal_grade"]);
            studentReportData.push(newData);

            maxGradingSections = (grades.grades.length > maxGradingSections) ? grades.grades.length : maxGradingSections;
        })
        this.maxGradingSections = maxGradingSections;
        this.studentReportData = studentReportData;
    }

問題是即使等級是70,它仍然顯示通過。 我不知道我的邏輯有什么問題。

在此處輸入圖像描述

根據 getStudentScheduleBySession 方法的代碼片段,您將新成績的值存儲到 newData["finalGrade"] 中。 但是在 setRemark 方法中傳遞的變量名是 newData["final_grade"]。 我認為應該是 newData["finalGrade"]。

我已經解決了問題是這條線

newData["remark"] = this.setRemark(newData["final_grade"], newData["removal_grade"]);

它沒有傳遞數據所以改變這個

newData["remark"] = this.setRemark(grades.finalGrade, newData["removal_grade"]);

感謝大家給我更多的調試提示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM