質問:オブジェクトと配列を条件に合成して新しいオブジェクトに戻す


Repl.it問題を解く過程で非常に困難な問題に直面し,メモを残した.
質問する
scops、getExamResultという関数を作成します.requiredClassという2つのパラメータ値を受信します.
scoreはオブジェクトで、オブジェクト要素の個数とキーの名前が異なる場合があります.オブジェクトの値には次の9つの文字列の1つがあります.
('A+', 'A', 'B+', 'B', 'C+', 'C', 'D+', 'D', 'F')
スコアオブジェクト
let scores = {
  '생활속의회계': 'C',
  '논리적글쓰기': 'B',
  '독일문화의이해': 'B+',
  '기초수학': 'D+',
  '영어회화': 'C+',
  '인지발달심리학': 'A+'
}
requiredClassesは、次のように文字列配列です.
let requiredClasses = ['영어회화', '기초수학', '공학수학', '컴퓨터과학개론'];
関数を実装して、次の条件を満たすオブジェクトを返します.
  • Scoresオブジェクトが所有する鍵は、新しいオブジェクトに含める必要があります.
    しかし、これらの値は以下の原理に従ってデジタル割り当てに変換されるべきである.
  • A+ => 4.5
    A => 4
    B+ => 3.5
    B => 3
    C+ => 2.5
    C => 2
    D+ => 1.5
    D => 1
    F => 0
  • はrequiredClass配列の要素として存在するが、
    アイテムがある場合は、要素は新しいオブジェクトのキーであり、値は0でなければなりません.
  • 上記の例で説明したオブジェクトと配列がパラメータとして入力されている場合.
    オブジェクトは次のように返さなければなりません.
    {
      '영어회화': 2.5,
      '기초수학': 1.5,
      '공학수학': 0,
      '컴퓨터과학개론': 0,
      '생활속의회계': 2,
      '논리적글쓰기': 3,
      '독일문화의이해': 3.5,
      '인지발달심리학': 4.5
    }
    に答える
    const getExamResult = (scores, requiredClasses) => {
      let requiredClassesObj = {};
        for(let key in scores){
        const value = scores[key];      
        if(value === 'A+'){
          scores[key] = 4.5
        }else if(value === 'A'){
          scores[key] = 4.0
        }else if(value === 'B+'){
          scores[key] = 3.5
        }else if(value === 'B'){
          scores[key] = 3.0
        }else if(value === 'C+'){
          scores[key] = 2.5
        }else if(value === 'C'){
          scores[key] = 2.0
        }else if(value === 'D+'){
          scores[key] = 1.5
        }else if(value === 'D'){
          scores[key] = 1.0
        }else if(value === 'F'){
          scores[key] = 0
        }
      }
      for(let key in requiredClasses){
        //배열 길이만큼 돌려서 빈객체인 obj에게 넣는중
        let helpme = requiredClasses[key];
        requiredClassesObj[helpme] = 0;
      }
      let result = Object.assign(requiredClassesObj, scores);
      return result;
    }

    辛いところ


    1.配列自体がオブジェクトとして割り当てられることは理解できません.配列がキー値であるため、value値はどのように設定されているのでしょうか.
    だからコードの中で
    requiredClassesObj[helpme] = 0; 最初から
    requiredClassesObj[helpme]; 私はそうして、ずっとうろうろしていたと思います.
    2.returnの位置でバタバタしているようですが、長い間見ていたので、中間値を確認したいのかもしれません
    何度もreturnを打ったが、欲しい値がないようで、forinがドアの中にいるようだ.
    返した
    3.もともとscopsをキー値と配列値に分けたいと思っていたのですが、当初はfor in文で中の値を再配分すれば良いのですㅠ

    に感銘を与える