TIL 22 day 200922 session
200922 JS session
1. Class
フナの型
class 붕어빵틀 {
constructor (반죽) { //슈크림, 팥, 고추참치 등이 인자로 들어갈 수 있다. data
this.반죽 = 반죽;
}
bake = () => {};
press = () => {};
}
class는 data와 함수를 가지고 있는 형태
const 슈크림붕어빵 = new 붕어빵틀(슈크림);
例:Instagramプロファイル
class Feed {
constructor(img, user, comments, likedCount) {
this.img = img; // image url이 들어오기 때문에 string이 형태의 data가 넘어온다.
this.userId = userId; // id는 고유한 값이라 주로 number가 넘어온다.
this.comments = comments; // array[string]이 넘어가는게 아니라 ***[{}] 형태로 넘어온다. 댓글에는 댓글 내용뿐만 아니라 누가 쓴지 유저정보도 들어가기 때문.
this.likedCount = likedCount;
}
addComment = (comment ※객체가 인자로 들어감) => {
this.comment.push(comment)
};
※인자는 객체로 넘어간다.
deleteComment = (commentId) => {
this.comments = this.comments.filter((comment) => {
if (comment.commentId === commentId) {
return false; // 나는 ID를 지울것이기 때문
} return true;
});
}
}
*** {
userId: number,
comment: string,
commentId: number => comment에도 고유한 하나의 ID가 있다. 식별자.
}
形式別に並べる.複数のデータを受信する必要があるので、オブジェクトを使用します.
配列は複数で書く.
2.object 3最後の問題
for inは、クエリー・オブジェクトごとのキー値に使用されます.オブジェクトをfor-in文に変換するときは、キー値が返されることを知っておく必要があります.
for ofは、クエリー配列ごとの値に使用されます.const getExamResult = (scores, requiredClasses) => {
const result = {};
const scoresToNumber = {
"A+": 4.5,
A: 4,
"B+": 3.5,
B: 3,
"C+": 2.5,
C: 2,
"D+": 1.5,
D: 1,
F: 0,
};
for (const className in scores) {
const score = scores[className];
result[className] = scoresToNumber[score];
}
requiredClasses.forEach((className) => {
if (!result[className]) result[className] = 0;
});
return result;
};
const scores = {
생활속의회계: "C",
논리적글쓰기: "B",
독일문화의이해: "B+",
기초수학: "D+",
영어회화: "C+",
인지발달심리학: "A+",
};
const requiredClasses = ["영어회화", "기초수학", "공학수학", "컴퓨터과학개론"];
const result = getExamResult(scores, requiredClasses);
console.log(result);
Reference
この問題について(TIL 22 day 200922 session), 我々は、より多くの情報をここで見つけました
https://velog.io/@winney_77/TIL-22-day-200922-session
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
class 붕어빵틀 {
constructor (반죽) { //슈크림, 팥, 고추참치 등이 인자로 들어갈 수 있다. data
this.반죽 = 반죽;
}
bake = () => {};
press = () => {};
}
class는 data와 함수를 가지고 있는 형태
const 슈크림붕어빵 = new 붕어빵틀(슈크림);
class Feed {
constructor(img, user, comments, likedCount) {
this.img = img; // image url이 들어오기 때문에 string이 형태의 data가 넘어온다.
this.userId = userId; // id는 고유한 값이라 주로 number가 넘어온다.
this.comments = comments; // array[string]이 넘어가는게 아니라 ***[{}] 형태로 넘어온다. 댓글에는 댓글 내용뿐만 아니라 누가 쓴지 유저정보도 들어가기 때문.
this.likedCount = likedCount;
}
addComment = (comment ※객체가 인자로 들어감) => {
this.comment.push(comment)
};
※인자는 객체로 넘어간다.
deleteComment = (commentId) => {
this.comments = this.comments.filter((comment) => {
if (comment.commentId === commentId) {
return false; // 나는 ID를 지울것이기 때문
} return true;
});
}
}
*** {
userId: number,
comment: string,
commentId: number => comment에도 고유한 하나의 ID가 있다. 식별자.
}
const getExamResult = (scores, requiredClasses) => {
const result = {};
const scoresToNumber = {
"A+": 4.5,
A: 4,
"B+": 3.5,
B: 3,
"C+": 2.5,
C: 2,
"D+": 1.5,
D: 1,
F: 0,
};
for (const className in scores) {
const score = scores[className];
result[className] = scoresToNumber[score];
}
requiredClasses.forEach((className) => {
if (!result[className]) result[className] = 0;
});
return result;
};
const scores = {
생활속의회계: "C",
논리적글쓰기: "B",
독일문화의이해: "B+",
기초수학: "D+",
영어회화: "C+",
인지발달심리학: "A+",
};
const requiredClasses = ["영어회화", "기초수학", "공학수학", "컴퓨터과학개론"];
const result = getExamResult(scores, requiredClasses);
console.log(result);
Reference
この問題について(TIL 22 day 200922 session), 我々は、より多くの情報をここで見つけました https://velog.io/@winney_77/TIL-22-day-200922-sessionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol