문제 조건
가장 아래의 코드가 실행 되었을 때, “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);
답안 코드
var user = {
name: "john",
age: 20,
}
var getAged = function (user, passedTime) {
// 여기를 작성해 주세요!
var newuser = {}
for (var prop in user) {
newuser[prop] = user[prop]
}
newuser.age += passedTime
return newuser
}
var agedUser = getAged(user, 6);
var agedUserMustBeDifferentFromUser = function (user1, user2) {
console.log(user1)
console.log(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);
var newuser = user 를 할 경우 user 자체도 변경 되기 때문에
var newuser = {} 를 통해 user의 키값들만 가져오게 한 것이다.
이러쿵 저러쿵해서 어떻게 돌아가는 지는 이해했다.
여기서 궁금한건 해당 문제에서 user 전체의 키 값을 받아오는 것이 아닌
newuser 를 불러올때, 즉 user2 를 불러올때 user1에서 age 값에 passdTime의 값을 더해
user1의 age값으로 나타내는 방식은 더 복잡해지는건가 라는 것이다...
수정 코드
var user = {
name: "john",
age: 20,
}
var passedTime = 6
agedUser = {
name: user.name,
age: user.age + passedTime
}
var agedUserMustBeDifferentFromUser = function (user1, user2) {
console.log(user1)
console.log(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);
여기서
agedUser = {
name: user.name,
age: user.age + passedTime
}
부분의 agedUser 를 user2로 바꾸고
마지막줄인
agedUserMustBeDifferentFromUser(user, agedUser);
이 부분을 아예 지워도 상관없다.
paseedTime = 6 부분만 숫자를 바꾸어 user2의 나이가 변하는지 확인,
user1 과 user2가 서로 다른 객체인지 확인.
문제 없이 작동하는 걸 확인했다.
'Algorithm' 카테고리의 다른 글
n번째 글자를 기준으로 오름차순 정렬! (0) | 2023.05.31 |
---|---|
간단한 문제 풀어보기 ( 더 간단하게.. ) (0) | 2023.05.30 |
문자열에 특정 문자 개수 비교 (0) | 2023.05.30 |