[Jereplit]Object回答
23740 ワード
上記のコードの最初の週のJavaScript問題の中で、個人的にはこの問題が一番難しい問題だと思っていたので、私の記憶を保存するためにブログを書きました.
❗️ Assignment
パラメータ 'A+', 'A', 'B+', 'B', 'C+', 'C', 'D+', 'D', 'F' A+ => 4.5 A => 4 B+ => 3.5 B => 3 C+ => 2.5 C => 2 D+ => 1.5 D => 1 F => 0
プロジェクトが 私の草
問題要求の結果は
次回.
したがって、for反復文は配列中の要素iを要求する.指定した範囲がlengthより小さい場合、上記の条件文の演算により、上記の科目が0点の結果がkeyと値に入ります.演算を解に書くと
2番目の複文の演算がどのように行われているかを見てみましょう.
❗️ Assignment
getExamResult
関数を実装するには、次の説明を参照してください.パラメータ
scores
は、次のオブジェクトです.オブジェクト内の要素の数とキーの名前が異なる場合があります.オブジェクトの値には、次の9つの文字列のいずれかがあります.{
'생활속의회계': 'C',
'논리적글쓰기': 'B',
'독일문화의이해': 'B+',
'기초수학': 'D+',
'영어회화': 'C+',
'인지발달심리학': 'A+',
}
パラメータrequiredClasses
は、次のように文字列配列である.['영어회화', '기초수학', '공학수학', '컴퓨터과학개론']
関数を実装して、次の条件を満たすオブジェクトを返します.scores
オブジェクトの鍵は、新しいオブジェクトに含める必要があります.ただし、これらの値は、次の原理に従って数値に変換して割り当てる必要があります.プロジェクトが
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 가 바뀐다.
以上の演算過程で結論を出すことができる.Reference
この問題について([Jereplit]Object回答), 我々は、より多くの情報をここで見つけました https://velog.io/@sui3422/JS-Scope-의-이해テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol