지금까지 포스팅한 내용과 검색을 기반으로 작성하겠습니다.
문제는 아래와 같습니다.
// 학생별 점수를 아래 형식에 맞춰서 콘솔에 출력
let scores = [];
/* ### 학생별 점수 데이터
0: {name: '홍길동', korean: 80, math: 90, english: 90}
1: {name: '고길동', korean: 90, math: 80, english: 80}
2: {name: '신길동', korean: 70, math: 80, english: 70}
### 출력 형식
----------- --------- --------- --------- --------- ---------
학생이름 국어 영어 수학 합계 평균
----------- --------- --------- --------- --------- ---------
홍길동 80 90 90 260 86.7
: : : : : :
*/
작성한 답안은 아래와 같습니다.
//해당 내용을 풀기 전에 먼저 구분을 짓습니다. 학생별 점수 데이터는 저대로 집어넣으면 될 것 같습니다.
let score = [
{name: '홍길동', korean: 80, math: 90, english: 90},
{name: '고길동', korean: 90, math: 80, english: 80},
{name: '신길동', korean: 70, math: 80, english: 70}
]
//이 후 출력 부분의 이름부분은 데이터에서 불가능하진 않지만, 또한 굳이 데이터를 오염시킬 필요는 없다고 생각합니다. 간단하게 출력했습니다.
console.log(`------ ---- ---- ---- ----- -----`)
console.log(`이름 국어 수학 영어 합계 평균 `)
console.log(`------ ---- ---- ---- ----- -----`)
//위치는 이후 데이터 출력상황을 보고 잡겠습니다.
//이제 foreach를 통해 반복구문을 형성합니다.
score.forEach(function(student) {
student.sum = student.korean + student.math + student.english;
student.avg = (student.sum/3).toFixed(1);
console.log(`${student.name} ${student.korean} ${student.math} ${student.english} ${student.sum} ${student.avg}`);
}
);
//여기서 평균 계산시 소수점이 많이 나오는 것을 확인했습니다. 구글 검색을 통해 소수점을 제한하는 명령어가 toFixed 임을 확인하고 적용했습니다.
------ ---- ---- ---- ----- -----
이름 국어 수학 영어 합계 평균
------ ---- ---- ---- ----- -----
홍길동 80 90 90 260 86.7
고길동 90 80 80 250 83.3
신길동 70 80 70 220 73.3
//결과값입니다.
챗지피티를 통해 확인한 값은 아래와 같습니다.
let scores = [
{ name: "홍길동", korean: 80, english: 90, math: 90 },
{ name: "고길동", korean: 90, english: 80, math: 80 },
{ name: "신길동", korean: 70, english: 80, math: 70 }
];
// 합계와 평균 계산 함수
function calculateScores(data) {
data.forEach(student => {
// 국어, 영어, 수학 점수 속성의 일관성을 맞춤
// 합계와 평균 계산
student.sum = student.korean + student.english + student.math;
student.avg = (student.sum / 3).toFixed(1);
});
}
// 표 그리기 함수
function printTable(data) {
console.log("----------- -------- -------- -------- -------- --------");
console.log(" 학생이름 국어 영어 수학 합계 평균 ");
console.log("----------- -------- -------- -------- -------- --------");
data.forEach(student => {
console.log(
`${student.name.padEnd(10)} ${String(student.korean).padEnd(7)} ${String(student.english).padEnd(7)} ${String(student.math).padEnd(7)} ${String(student.sum).padEnd(7)} ${student.avg}`
);
});
console.log("----------- -------- -------- -------- -------- --------");
}
*생성형 AI 활용한 클라우드&보안 전문가 양성캠프 과정의 교육내용 정리 자료입니다.
'코딩 > 자바스크립트' 카테고리의 다른 글
[새싹 성동 2기] JavaScript 전개 연산자(Spread Operator)와 비구조화(Destructuring) 정리 (0) | 2024.11.15 |
---|---|
[새싹 성동 2기] JavaScript에서 JSON 데이터 처리 및 객체 속성명 활용 (4) | 2024.11.15 |
[새싹 성동 2기] 자바스크립트에서 함수 정의와 활용법 (2) | 2024.11.12 |
[새싹 성동 2기] 자바스크립트의 기초: 변수, 자료형, 연산자, 그리고 호이스팅 (1) | 2024.11.12 |
[새싹 성동 2기] 코딩을 위한 준비 작업 - 노드.js와 VSCode 설치 방법 (4) | 2024.11.09 |