03 각 객체에 학생들의 성적 총합과 평균을 구하는 함수

Jo yun hee·2022년 5월 18일

1일1함수외우기

목록 보기
3/18

각각 객체에 학생들의 성적 총합과 평균을 구하시오.

객체활용하기

const students = [
    {이름: '구름', 국어: 87, 영어: 98, 수학: 88, 과학: 90},
    {이름: '별이', 국어: 92, 영어: 98, 수학: 96, 과학: 88},
    {이름: '겨울', 국어: 76, 영어: 96, 수학: 94, 과학: 86},
    {이름: '바다', 국어: 98, 영어: 52, 수학: 98, 과학: 92}
]
console.log(students);

let output = '이름\t총점\t평균\n';
for (const student of students) {
    const 총점 = student.국어 + student.영어 + student.수학 + student.과학;
    const 평균 = 총점 / 4;
    output += `${student.이름}\t${총점}점\t${평균}점\n`
}

console.log(output);v

이렇게 단순하게 계산하는 것보다 함수로 만들어 놓으면 확장성을 고려했을 때 좋은 방법이다.
객체를 만드는부분과 객체를 활용하는 부분으로 나누어 다시 코드를 짜보자.



객체를 생성하는 함수

//1.각각 객체에 학생들의 이름, 총점, 평균을 구하시오.(객체를 생성하는 함수)
//이름, 국어, 영어, 수학, 과학
//('구름', 87, 98, 88, 90)
//('별이', 92, 98, 96, 88)
//('겨울', 76, 96, 94, 86)
//('바다', 98, 52, 98, 92)

function createStudent (이름, 국어, 영어, 수학, 과학) {
    return {
        //속성을 선언합니다
        이름: 이름,
        국어: 국어,
        영어: 영어,
        수학: 수학,
        과학: 과학,
        //메소드를 선언합니다
        getSum () {
            return this.국어 + this.영어 + this.수학 + this.과학
        },
        getAverage () {
            return this.getSum () / 4
        },
        toString () {
            return `${this.이름}\t${this.getSum()}점\t${this.getAverage()}점\n`
        }
    }
}

//객체를 선언합니다
const student = []
student.push(createStudent('구름', 87, 98, 88, 90))
student.push(createStudent('별이', 92, 98, 96, 88))
student.push(createStudent('겨울', 76, 96, 94, 86))
student.push(createStudent('바다', 98, 52, 98, 92))

//출력합니다
let output = `이름\t총점\t평균\n`
for (const s of student) {
    output += s.toString() //숫자타입을 문자 타입으로 변환
}

console.log(output)

class로 생성하는 함수



class Student {
    constructor (이름, 국어, 영어, 수학, 과학) {
        this.이름 = 이름
        this.국어 = 국어
        this.영어 = 영어
        this.수학 = 수학
        this.과학 = 과학
    }
    //메소드를 선언합니다.
    getSum () {
        return this.국어 + this.영어 + this.수학 + this.과학
    }
    getAverage () {
        return this.getSum() / 4
    }
    toString () {
        return `${this.이름}\t${this.getSum()}점\t${this.getAverage()}점\n`
    }
}

//객체를 선언합니다
const students = []
student.push(createStudent('구름', 87, 98, 88, 90))
student.push(createStudent('별이', 92, 98, 96, 88))
student.push(createStudent('겨울', 76, 96, 94, 86))
student.push(createStudent('바다', 98, 52, 98, 92))

//출력합니다
let output = '이름\t총점\t평균\n'
for (const s of students) {
    output += s.toString()
}
console.log(output)

0개의 댓글