[Replit] js - Object

HongDuHyeon·2022년 3월 3일
0
post-thumbnail

유저의 nickname과 interests 넣기

객체에 조금이라도 자신이 있었다고 생각한 내 자신이 밉다.
먼저 문제는 이렇게 주어졌다.

handleEdit함수는 nickname, interests 라는 두 인자로 받습니다.
interests에는 여러 관심사를 적을 수 있습니다. 그 때 그 관심사의 구분을 콤마(,)를 이용합니다.
nickname과 interests가 문제 없이 잘 들어왔다면 유저 정보를 효율적으로 관리하기 위해서 
Object에 이 정보를 담아서 관리할 겁니다.

예시) {
nickname: "뚜비",
interests: ["방탈출","테니스","멍 때리기"],
bio: "제 닉네임은 뚜비입니다. 취미는 방탈출,테니스,멍 때리기입니다."
}

문제풀이 및 난항

나의 약점이자 제일 큰 문제가 바로 나왔다.
처음 문제를 풀때 어디에 뭘 넣어야할지 아직도 감이 잘 잡히지 않아서 구글링을 해봤다.

새로운 객체를 만들어서 리턴하면 된다.

라는걸 파악한 후 문제풀이에 들어갔다. 일단 우선 새로운 객체들이 들어갈 보금자리를 마련해줬다.

const handleEdit = (nickname, interests) => {
  obj = {}
}

들어갈 자리를 만들어주고 그 다음엔 인자로 받은 nicknameinterests를 객체로 들어올수 있게
obj에 객체 안에 넣어줘야한다. bio 같은 경우엔 문자열 안에 들어가니 예전에 정리했던
Templete Literal을 사용해주면 굉장히 뿌듯하다. 이제 작성한 코드를 살펴보자

const handleEdit = (nickname, interests) => {
  obj = {};
  obj.nickname = nickname;
  obj.interests = interests;
  obj.bio = `제 닉네임은 ${obj.nickname}입니다. 취미는 ${obj.interests}입니다.`
}

자랑스럽게 써놓고 run을 눌러봤는데 ㅋ.... ㅋ..ㅋㅋㅋ.......
obj.interests에다가 split으로 문자열을 잘라주지 않아서 << 이것만 나온다 ㅋㅋㅋㅋ.......
그래서 다시 코드를 작성했다.

const handleEdit = (nickname, interests) => {
  obj = {};
  obj.nickname = nickname;
  obj.interests = interests.split(',');
  obj.bio = `제 닉네임은 ${obj.nickname}입니다. 취미는 ${obj.interests}입니다.`
}

split 괄호 안에 쉼표를 적어줌으로써 쉼표를 기점으로 문자를 다시 잘라줬더니 제대로 된 코드가 작동한다.
templete literal까진 좋았으나 interests에서 디테일이 너무 없었다. 앞으론 문제를 끝까지 읽고 한번 더 읽는 걸로....

profile
마음이 시키는 프론트엔드.. RN과 IOS를 곁들인..

0개의 댓글