문제
가장 아래의 코드가 실행 되었을 때, “Passed ~” 가 출력되도록 getAge 함수를 채워주세요
var user = {
name: "john",
age: 20,
}
var getAged = function (user, passedTime) {
// 여기를 작성해 주세요!
}
var agedUser = getAged(user, 6);
var agedUserMustBeDifferentFromUser = function (user1, user2) {
if (!user2) {
console.log("Failed! user2 doesn't exist!");
} else if (user1 !== user2) {
console.log("Passed! If you become older, you will be different from you in the past!")
} else {
console.log("Failed! User same with past one");
}
}
agedUserMustBeDifferentFromUser(user, agedUser);
내가 작성한 코드
처음엔 return true 이러다가 너무 양아친가 싶어서 출제의도(?)를 고려하여 다시 작성했다.
참조를 피하기위해 값을 새로 ㄱㄱ
var user = {
name: 'john',
age: 20,
};
var getAged = function (user, passedTime) {
// (user, 6)
// 여기를 작성해 주세요!
// return true
// name: user.name;
// age: user.age;
// passedTime: user.passedTime;
// 여기는 함수니까
// user2를 뱉어내야됨
return { name: user.name, age: user.age + passedTime, passedTime: passedTime };
};
var agedUser = getAged(user, 6);
var agedUserMustBeDifferentFromUser = function (user1, user2) {
if (!user2) {
console.log("Failed! user2 doesn't exist!");
} else if (user1 !== user2) {
console.log('Passed! If you become older, you will be different from you in the past!');
} else {
console.log('Failed! User same with past one');
}
};
agedUserMustBeDifferentFromUser(user, agedUser);
console.log('user => ', user);
console.log('getAged => ', agedUser);
console.log('참조값 비교 => ', user == agedUser);
정답
참조를 피하기 위해 for in문으로 요소 하나하나를 순회하면서 복사
var user = {
name: "john",
age: 20,
}
// 객체 만들어 프로퍼티 복사하기
var getAged = function (user, passedTime) {
var result = {};
for (var prop in user) { // user안의 key가 prop에 계속 할당 됨
result[prop] = user[prop]; // result의 key를 user의 해당 key의 값으로 채워넣어라
}
result.age += passedTime;
return result;
}
var agedUser = getAged(user, 6);
var agedUserMustBeDifferentFromUser = function (user1, user2) {
if (user1 !== user2) { // 참조형 ㄴㄴ. 여기서 걸려버림 -> 순회하면서 만들어야돼
console.log("Passed! If you become older, you will be different from you in the past!")
} else {
console.log("Failed! User same with past one");
}
}
agedUserMustBeDifferentFromUser(user, agedUser);
'JavaScript' 카테고리의 다른 글
| 숙제6 - async/await 로 리팩토링 하기 (0) | 2023.05.29 |
|---|---|
| 숙제5 - 어떤 매치가 성사될까? (0) | 2023.05.29 |
| 숙제3 - 문자열 내 마음대로 정렬하기 (0) | 2023.05.28 |
| 숙제2 - 반복문, 조건문 연습하기 (0) | 2023.05.28 |
| 숙제1 - 문자열 연습하기 (0) | 2023.05.28 |