handleEdit 함수를 구현해 주세요.
- 쇼핑몰 회원가입에서 한 번 쯤은 아래와 같은 문구를 보셨을 겁니다.
환영합니다. 행갬님! 회원가입 기념으로 쿠폰을 적립해 드렸습니다.
이러한 문구에서는 이름 부분만 계속 바뀌고 나머지 부분은 고정됩니다. 그럼, 이름 부분을 변수로 관리 하겠죠?
- 그렇다면 handleEdit 라는 이름을 가진 함수를 구현해 봅시다.
- 이 함수는 nickname, interests 라는 두 string을 인자로 받습니다. nickname은 유저의 닉네임을, interests 는 유저의 관심사를 의미합니다.
- interests 에는 여러 관심사를 적을 수 있습니다. 그 때 그 관심사의 구분을 콤마(,)를 이용합니다.
- nickname 과 interests 가 문제 없이 잘 들어왔다면 유저 정보를 효율적으로 관리하기 위해서 Object에 이 정보를 담아서 관리할 겁니다.
- 예를 들어 입력 값이 nickname = "뚜비" , interests = "방탈출,테니스,멍 때리기" 라고 했을 때
- 아래와 같은 Object를 리턴하도록 구현해 주세요.
⚠️ 주의- interests 는 배열입니다.
- interests 를 적을 때 콤마(,) 뒤에 스페이스는 지워주세요.
{ nickname: "뚜비", interests: ["방탈출","테니스","멍 때리기"], bio: "제 닉네임은 뚜비입니다. 취미는 방탈출,테니스,멍 때리기입니다." }
const handleEdit = (nickname, interests) => {
let user = {
nickname: nickname,
interests: interests.split(','),
bio: `제 닉네임은 ${nickname}입니다. 취미는 ${interests}입니다.`
}
return user;
};
결국 문제에서 요구하는 바는,
{
nickname: "뚜비",
interests: ["방탈출","테니스","멍 때리기"],
bio: "제 닉네임은 뚜비입니다. 취미는 방탈출,테니스,멍 때리기입니다."
}
이러한 형식의 object, 객체를 리턴해 달라는 것이다. nickname은 매개변수로 전달된 nickname 값을 그대로 할당하면 되고, bio는 template literals를 활용하여 문장은 백틱으로, 변수는 ${nickname}
과 같이 작성해 주었다.
여기서 문제가 되었던 것이, 매개변수로 전달받은 interests 값들을 object 내의 interests value에 콤마(,
)로 연결된 배열로 return해야 되는 것인데, 아무리 고민해도 방법이 떠오르지 않아 구글에 검색해보았다.
String.prototype.split()
split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.
이 split()
메서드를 활용하여 object 내에
interests: interests.split(','),
와 같이 주게 되면, 매개변수로 전달받은 interests 값들이 ,
를 기준으로 interests key 내에 value 값이 배열로 저장되게 된다.
✅ test1
✅ test2
✅ test3
All tests have passed 3/3
통과!
split()
메서드를 잘 모르고 있었는데, 이번 기회에 확실히 짚고 넘어가는 거 같다.