質問:オブジェクトと配列を条件に合成して新しいオブジェクトに戻す
11561 ワード
Repl.it問題を解く過程で非常に困難な問題に直面し,メモを残した.
質問する
scops、getExamResultという関数を作成します.requiredClassという2つのパラメータ値を受信します.
scoreはオブジェクトで、オブジェクト要素の個数とキーの名前が異なる場合があります.オブジェクトの値には次の9つの文字列の1つがあります.
('A+', 'A', 'B+', 'B', 'C+', 'C', 'D+', 'D', 'F')
スコアオブジェクト 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でなければなりません. 上記の例で説明したオブジェクトと配列がパラメータとして入力されている場合.
オブジェクトは次のように返さなければなりません.
1.配列自体がオブジェクトとして割り当てられることは理解できません.配列がキー値であるため、value値はどのように設定されているのでしょうか.
だからコードの中で
requiredClassesObj[helpme] = 0; 最初から
requiredClassesObj[helpme]; 私はそうして、ずっとうろうろしていたと思います.
2.returnの位置でバタバタしているようですが、長い間見ていたので、中間値を確認したいのかもしれません
何度もreturnを打ったが、欲しい値がないようで、forinがドアの中にいるようだ.
返した
3.もともとscopsをキー値と配列値に分けたいと思っていたのですが、当初はfor in文で中の値を再配分すれば良いのですㅠ
質問する
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 = ['영어회화', '기초수학', '공학수학', '컴퓨터과학개론'];
関数を実装して、次の条件を満たすオブジェクトを返します.しかし、これらの値は以下の原理に従ってデジタル割り当てに変換されるべきである.
A => 4
B+ => 3.5
B => 3
C+ => 2.5
C => 2
D+ => 1.5
D => 1
F => 0
アイテムがある場合は、要素は新しいオブジェクトのキーであり、値は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文で中の値を再配分すれば良いのですㅠ
に感銘を与える
Reference
この問題について(質問:オブジェクトと配列を条件に合成して新しいオブジェクトに戻す), 我々は、より多くの情報をここで見つけました https://velog.io/@93jm/JS-문제-객체와-배열을-조건에-맞게-합하여-새로운-객체로-리턴テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol