Javascript repl.it 마지막 최종보스같은 😭😩 과제
정말 오랜시간에 걸쳐서 겨우 해결한 기념으로 나중에 (실력을 쌓고서) 코드리뷰할 목적으로 올려봅니다.
** 족보처럼 해결방법을 바로 보려고 오신 분은 살포시 뒤로가기를 눌러주세요. (제 코드가 괜찮다고 차마 말을 못하겠..)
// Assignment - 다음 함수 안에 코드를 구현하세요
let scores = {
'생활속의회계':'C',
'논리적글쓰기':'B',
'독일문화의이해':'B+',
'기초수학':'D+',
'영어회화':'C+',
'인지발달심리학':'A+'
};
let requiredClasses = ['영어회화', '기초수학', '공학수학', '컴퓨터과학개론'];
const getExamResult = (scores, requiredClasses) => {
const result = {};
let numscore = {'A+' : 4.5, 'A' : 4, 'B+' : 3.5, 'B' : 3, 'C+' : 2.5, 'C' : 2, 'D+' : 1.5,'D' : 1,'F' : 0};
// result 빈 object {} 에 requiredClasses = 0; 의 값으로 먼저 넣어주기
for (let i =0; i<4; i++){
let add = requiredClasses[i];
result[add] = 0;
console.log(result);
}
// score만 추출
const values = Object.values(scores); //[c, b, b+, ..]
console.log(values);
// score 영어점수를 숫자점수로 바꿔주기
for (let i =0; i<values.length;i++) {
let setscores = Object.keys(numscore); // [a+, a, b+ ..]
let setnumber = Object.values(numscore); // [4.5, 4, 3.5 ...]
for (j=0; j<setscores.length; j++){
if(setscores[j]===values[i]){
values[i] = setnumber[j];
} console.log(values); // 바꾼 점수들 [2, 3, 3.5 ...]
}
}
// 기존과목들 이름 (scores의 key값 가져오기)
let names = Object.keys(scores);
console.log(names);
// 기존과목들과 숫자점수를 result에 넣어주기
for (let i=0; i<names.length; i++){
const insertname= names[i];
const insertscore = values[i];
result[insertname] = insertscore;
} console.log(result);
return result;
}
getExamResult(scores,requiredClasses);