wecode 1주차) JS repl.it 최종보스

개발자 우니·2020년 6월 27일
0

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);

profile
It’s now or never

0개의 댓글