첫번째 입력에서는 학생의 이름이 공백으로 구분되어 입력되고, 두번째에는 그 학생의 수학 점수가 공백으로 구분되어 주어집니다.
두 개를 합쳐 학생의 이름이 key이고 value가 수학 점수인 객체를 출력해주세요.
입력
Yujin Hyewon
70 100
출력
{'Yujin': 70, 'Hyewon': 100}
function Object(name, score) {
this.name = name;
this.score = score;
}
function soulution(names, scores) {
let name = names.split(' ');
let score = scores.split(' ');
for (let i = 0; i < name.length; i++){
let obj = new Object(name[i],score[i])
}
}
const keys = prompt('이름을 입력하세요').split(' ');
const values = prompt('점수를 입력하세요').split(' ');
const obj = {};
for (let i=0; i<keys.length; i++) {
obj[keys[i]] = parseInt(values[i], 10);
}
console.log(obj);
function Object(name, score) {
this.name = name;
this.score = score;
}
function soulution(names, scores) {
let name = names.split(' ');
let score = scores.split(' ');
let obj= new Object(name, score)
for (let i = 0; i < name.length; i++){
obj.name[i]
obj.score[i]
}
return obj
}
console.log(soulution('Yujin Hyewon', '70 100'))
객체를 만드는 방법에는 여러가지 있습니다.
:
을 기준으로 왼쪽은 key 또는 property
오른쪽은 value
로 구성합니다. property
값으로 함수가 올 수도 있는데 이러한 property
를 메소드(method)
라고 합니다.
const object = {
property: 'value'
method: function(){}
}
만약, 싱글 리터럴 방식을 많이 만들어야 하는 경우 생성자함수를 이용할 수 있습니다.생성자 함수의 이름으로는 PascalCase
로 만듭니다. 이 PascalCase
로 만든 함수의 경우 암묵적으로 생성자함수를 뜻합니다.
new
키워드와 함께 생성자 함수를 사용해 간단하게 새로운 객체를 만들어낼 수 있습니다.
function NewObject(name) {
this.name = name;
}
const newObject = new NewObject('jang');
객체를 서술하는 역할을 자세하게 설정을 해 Object
를 만들 수 있습니다.Object.create
는 Object
의 메소드
로 인수로 (프로토타입, 객체서술자(기술자))
를 받습니다.
const newObject2 = Object.create(Object.prototype, {
name: {
value: 'jang',
writable: true, // 덮어쓸 수 있는지
enumerable: true, // 열거할 수 있는지
configurable: true, // 객체 서술자를 수정할 수 있는지
},
});