예제 1) 다음 매개변수 id, name, age, contact 총 네 개를 전달 받아 위 'students' 오브젝트에 추가하는 함수 addStudent를 만드세요.
단, 'students'오브젝트에 학생을 추가 할 때에는 위 매개변수 중 id값을 키(key)로 사용하고 그 값(Value)은 name, age, contact 키 총 세개를 위 매개변수 값과 쌍이되도록 가지는 오브젝트입니다.
또한 위 매개변수 id를 이미 키로 가지고 있다면 그 값을 수정하도록 합니다.
가령, addStudent('A', '김학생', 22, '010-0000-1111');
을 호출하면 위 'students'오브젝트의 구조는 아래와 같이 변합니다.
{
A: {
name : '김학생',
age : 22,
contact : '010-0000-1111'
}
}
위 상태에서 addStudent('A', '이학생', 30, '010-0000-2222');
로 호출하게 되면 이미 students 오브젝트에는 'A'를 키로 가지는 쌍이 있음으로 그 값의 내용만 수정하여 아래와 같이 변경되게 합니다.
{
A: {
name : '이학생',
age : 30,
contact : '010-0000-2222'
}
}
let students = {}; let addStudent = (id, name, age, contact) => students[id] = { 'name' : name, 'age' : age, 'contact' : contact };
예제2) id를 매개변수로 받아 학생의 정보를 출력하는 함수 printStudent를 만드세요
printStudent('A')의 결과는 다음과 같습니다.
let students = {
A: {
name : '김학생',
age : 22,
contact : '010-0000-1111'
}
};
이름: 김학생
나이: 22
연락처: 010-0000-1111
단, 이때 전달 받은 id와 일치하는 학생이 없다면 '일치하는 학생이 없습니다.'를 출력하세요, 문자열 합치기는 Java와 같이 '+'기호를 사용합니다.
let printStudent = (id) => { let keys = Object.keys(students); if(keys.indexOf(id) > -1) { let student = students[id]; console.log('이름: ' + student.name); console.log('나이: ' + student.age); console.log('연락처: ' + student.contact); }else { console.log('일치하는 학생이 없습니다.') } };
예제 3) id를 매개변수로 받아 학생의 정보를 삭제하는 함수 deleteStudent를 만드세요. 단, 그러한 학생이 있어 삭제했을 경우 true를, 그런 학생이 없어 삭제하지 못했을 경우 false를 반환하세요.
`deleteStudent를('A'); //true`
`deleteStudent를('adf'); //false`
let deleteStudent = (id) => { let keys = Object.keys(students); if(keys.indexOf(id) > -1) { delete students[id]; return true; } else { return false; } };
예제 4) id를 매개변수로 받아 해당 id를 키로 가지는 학생이 있는가에 대한 여부를 반환하는 함수 studentExists를 만드세요.
`studentExists('A'); //true
let studentExists = (id) => Object.keys(students).indexOf(id) > -1;
console.log(studentExists('A')); console.log(studentExists('adsf')); console.log(studentExists('B'));
예제5 ) students 오브젝트가 가지고 있는 모든 쌍을 출력하는 함수 printAllStudents 를 만드세요. 가령 현재 상황에서 printAllStudents()를 호출하면 다음과 같이 출력이 되면 됩니다,
기존에 작성되어 있는 코드를 활용하고, 새로 작성하는 코드(printAllStudents 함수) 내에서는 'console'이라는 키워드를 한 번만 사용하세요,
학생간에 '----'로 구분하고 마지막 줄에는 '----'가 출력되지 않습니다.
let printAllStudents = () => { let keys =Object.keys(students); for(let i = 0; i < keys.length; i++) { let key = keys[i]; // i = 0 이면 key는 'A' printStudent(key); // 'A' 혹은 'B' if(i < keys.length -1) { // i : 0 ~ 1 //keys.length -1 : 1 console.log('--------------------'); } } };
if(i < keys.length -1) {
: 배열에 길이에서 1뺀것은 마지막만 제외한다는 의미 ! 공식처럼 쓰인다 외우기.