인프런 커뮤니티 질문&답변

인프러너님의 프로필 이미지
인프러너

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

아래 소스를 줄일 수 있는 방법이 있을까요?

작성

·

486

0

function (users){

  if (users === 'profile') {

    const UsersMessage = Users.profile.message;

    const UsersValue = Users.profile.value;

  } else if (users === 'join') {

    const UsersMessage = Users.join.message;

    const UsersValue = Users.join.value;

  } else if (usersKey === 'comment') {

    const UsersMessage = Users.comment.message;

    const UsersValue = Users.comment.value;

  }

}

위와같은 조건문이 있을 때 간단하게 줄일 수 있는 방법이 있을까요?

users값이 인자값으로 넘어올 때 그 값을 객체 중간에 끼워넣을 수 있는 방법이 있는지 궁금합니다.

내용이 더 추가가 되면 반복되는 것들이 많아질건데..

인자값을 받아와서 처리를 해 줄 수 있는 방법이 있을 것 같은데 아무리 고민해보고 찾아봐도 모르겠네요.

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

Users[users].message 하면 됩니다.

인프러너님의 프로필 이미지
인프러너
질문자

Users[users].message 

Users.[users].message 

두가지 다 해 봤는데 안되네요..ㅠㅠ

function (users){

    const UsersMessage = Users.[users].message;

    const UsersValue = Users.[users].value;

}

function (users){

    const UsersMessage = Users[users].message;

    const UsersValue = Users[users].value;

}

이렇게 해 봤습니다.

Users.[users].message; 이렇게 하면

ESLint: Parsing error: Identifier expected.

이런 오류가 뜹니다.

Users[users].message; 이렇게 하면

 Cannot read property 'message' of undefined 

이런 오류가 나옵니다.

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

Users[users]가 undefined가 되는 이유를 파악하세요. Users 객체에 없는 속성에 접근하니 에러가 나겠죠?

인프러너님의 프로필 이미지
인프러너

작성한 질문수

질문하기