[Jereplit]Object回答


上記のコードの最初の週のJavaScript問題の中で、個人的にはこの問題が一番難しい問題だと思っていたので、私の記憶を保存するためにブログを書きました.
❗️ AssignmentgetExamResult関数を実装するには、次の説明を参照してください.
パラメータscoresは、次のオブジェクトです.オブジェクト内の要素の数とキーの名前が異なる場合があります.オブジェクトの値には、次の9つの文字列のいずれかがあります.
  • 'A+', 'A', 'B+', 'B', 'C+', 'C', 'D+', 'D', 'F'
  • {
      '생활속의회계': 'C',
      '논리적글쓰기': 'B',
      '독일문화의이해': 'B+',
      '기초수학': 'D+',
      '영어회화': 'C+',
      '인지발달심리학': 'A+',
    }
    パラメータrequiredClassesは、次のように文字列配列である.
    ['영어회화', '기초수학', '공학수학', '컴퓨터과학개론']
    関数を実装して、次の条件を満たすオブジェクトを返します.
  • scoresオブジェクトの鍵は、新しいオブジェクトに含める必要があります.ただし、これらの値は、次の原理に従って数値に変換して割り当てる必要があります.
  • A+ => 4.5
  • A => 4
  • B+ => 3.5
  • B => 3
  • C+ => 2.5
  • C => 2
  • D+ => 1.5
  • D => 1
  • F => 0

  • プロジェクトがrequiredClasses配列の要素であるが、プロジェクトが存在しない場合、その要素は新しいオブジェクトのキーであり、値は0である必要があります.上記の例で説明したオブジェクトと配列がパラメータとして入力されている場合、次のオブジェクトが返されます.要素間の順序は異なる場合がありますが、スコアには関係ありません.
    {
      '생활속의회계': 2,
      '논리적글쓰기': 3,
      '독일문화의이해': 3.5,
      '기초수학': 1.5,
      '영어회화': 2.5,
      '인지발달심리학': 4.5,
      '공학수학': 0,
      '컴퓨터과학개론': 0,
    }
  • 私の草
    const getExamResult = (scores, requiredClasses) => {
      const result = {}; 
      
      let grade = {
        'A+': 4.5,
        'A': 4,
        'B+': 3.5,
        'B': 3,
        'C+': 2.5,
        'C': 2,
        'D+': 1.5,
        'D': 1,
        'F': 0
      };
      
      for (let i=0; i < requiredClasses.length; i++) {
        let key = requiredClasses[i];
        result[key] = 0;
      }
      
      for (let j in scores) {  
        let score = scores[j];
        result[j] = grade[score];
      }  
       
      return result;
    }
    」草解説
    問題要求の結果は
    {
      '생활속의회계': 2,
      '논리적글쓰기': 3,
      '독일문화의이해': 3.5,
      '기초수학': 1.5,
      '영어회화': 2.5,
      '인지발달심리학': 4.5,
      '공학수학': 0,
      '컴퓨터과학개론': 0,
    }
    上記の形状の対象として現れること.
     const result = {}; 
    まず、彼は結果を出力する空白の空間を発表した.
     let grade = {
        'A+': 4.5,
        'A': 4,
        'B+': 3.5,
        'B': 3,
        'C+': 2.5,
        'C': 2,
        'D+': 1.5,
        'D': 1,
        'F': 0
      };
    「grade」を宣言した理由は、パラメータscoreが以下のように示されているからです.
    {
      '생활속의회계': 'C',
      '논리적글쓰기': 'B',
      '독일문화의이해': 'B+',
      '기초수학': 'D+',
      '영어회화': 'C+',
      '인지발달심리학': 'A+',
    }
    上記パラメータの対象となる科目等級を単位に変換するために事前に宣言した.
    次回.
      for (let i=0; i < requiredClasses.length; i++) {
        let key = requiredClasses[i];
        result[key] = 0;
      }
    この部分の問題は、パラメータrequiredClasses
    ['영어회화', '기초수학', '공학수학', '컴퓨터과학개론']
    同級、これは単位をゼロに印刷する科目です.
    したがって、for反復文は配列中の要素iを要求する.指定した範囲がlengthより小さい場合、上記の条件文の演算により、上記の科目が0点の結果がkeyと値に入ります.演算を解に書くと
    for (let i=0; i < requiredClasses.length; i++) {
        let key = requiredClasses[i];
        result[key] = 0;
      }
    
    연산순서 해석
    let key = requiredClasses[0] // 이 값은 '영어회화' 이다. 배열의 첫번째이므로
    result[영어회화] = 0 //result 에 '영어회화' 라는 key 가 추가되서 그 값은 0이다.
    
    result = {
     '영어회화' : 0, 
    } 
    첫 연산 이후의 result 는 위와 같은 형태가 된다.
    
    위 반복문의 연산이 끝나면 
    result = {
      '영어회화' : 0
      '기초수학' : 0
      '공학수학' : 0
      '컴퓨터과학개론' : 0
    }
    이런 형태의 결과물이 된다.
    次の2番目のfor反復文を見てみましょう.
    let grade = {
        'A+': 4.5,
        'A': 4,
        'B+': 3.5,
        'B': 3,
        'C+': 2.5,
        'C': 2,
        'D+': 1.5,
        'D': 1,
        'F': 0
      };
    
      for (let j in scores) {  
        let score = scores[j];
        result[j] = grade[score];
      }  
    この2番目の複文のため、gradeを発表しました.
    2番目の複文の演算がどのように行われているかを見てみましょう.
    매개변수 scores 는 아래와 같다.
    {
      '생활속의회계': 'C',
      '논리적글쓰기': 'B',
      '독일문화의이해': 'B+',
      '기초수학': 'D+',
      '영어회화': 'C+',
      '인지발달심리학': 'A+',
    }
    
    let score = scores[j] 는 위 배열의 첫번째 키 부터 매개변수가 시작된다.
    
    따라서 첫번째 연산은
    let score = scores['생활속의회계']
    
    scores['생활속의회계'] 의 뜻은 '생활속의회계' 란 키의 값이란 의미이므로 'C' 가 저 값이다. 
    
    result['생활속의회계'] = grade['C']
    
    위와 같은 형태가 된다. 
    우변의 score 는 scores['생활속의회계'] 이므로 즉 'C' 가 된다. 
    grade['C'] 는 앞전의 선언한 grade의 키들 중 'C' 의 값을 표현하는 것이므로  2.5 가된다.
    좌변의 result 에는 '생활속의회계' 라는 키가 삽입된다.
    
    result = {
      '영어회화' : 0
      '기초수학' : 0
      '공학수학' : 0
      '컴퓨터과학개론' : 0
      '생활속의회계' : 2.5
    }
    첫 연산이 끝나면 아래와 같은 모습으로 result 가 바뀐다.
    以上の演算過程で結論を出すことができる.