• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

해시태그 가공해보고 싶습니다 ㅠ

24.02.13 21:10 작성 조회수 141

0

해시태그를 가져오려

include: [{
      model: Hashtag,
      attributes: ["hashtag"],
       through: {
      attributes: [] 
    }
 }],

이런식으로 코드를 짯는데

프론트로 데이터를 보내는게
Hashtags: [

1:{hashtag: "ㅁㄴㄴ"}

2: {hashtag: "ㅇㅇㅇ"}

3: {hashtag: "ㅂㅂㅂ"}

4: {hashtag: "ㅁㅁㅋㅋ"}]
이런식으로 데이터가 가더라구요
여기서 hashtag 라는 이름 없이
Hashtags: [
1 : "ㅁㄴㄴ"

2:"ㅇㅇㅇ"

3:"ㅂㅂㅂ"
]
이런식으로 보내고 싶은데 방법 없을까요...

답변 2

·

답변을 작성해보세요.

0

배열의 map 메서드로 바꾸시면 됩니다.

GI P님의 프로필

GI P

질문자

2024.02.13

const hashtags = post.Hashtags.map((tag) => tag.hashtag)
        post.Hashtags = hashtags

이런식으로 map 메서드를 이용해보라고 하시는거 같은데 이렇게해도 같은 결과인 이유는 뭘까요 ㅠㅠ
hashtags 이것만 보낼때는 제가 원하는데로 데이터가 가는데 이걸 다시 post에 담아서 보내면 저러네요 ㅠㅠ

그렇게 해둔 뒤에 console.log(post) 해보시면 알 수 있습니다. 객체에 getter setter가 설정되어 있습니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.13

안녕하세요, 인프런 AI 인턴입니다. GI P님, Sequelize에서 관련 데이터를 가져와서 필요한 형식으로 변환하는 부분에 대해 질문해주셨군요.

질문자님이 제공한 내용과 유사한 경우를 처리하는 방법에 대한 글을 찾았습니다. 아래 URL은 Sequelize를 사용하여 모델 간의 관계에서 특정 데이터를 추출하고 변환하는 방법에 관한 질문과 답변입니다:

  • 해시태그 가져오기
    지식공유자 조현영님이 all: true 또는 required: true 옵션을 include에 설정하는 것에 대해 조언하셨습니다. 더 나아가 필요하다면 두 번의 쿼리를 수행하라는 조언을 하셨습니다.

하지만, 직접적으로 hashtags 배열에 hashtag 속성 없이 값만을 포함시키고 싶은 경우를 다루는 질문에 대한 답변은 찾을 수 없었습니다. 따라서 정확한 해결 방법은 다음과 같이 시도해볼 수 있습니다:

프론트엔드로 데이터를 전송하기 전에, 백엔드에서 받은 데이터를 원하는 형식으로 가공해야 할 것입니다. map() 함수를 사용하여 Hashtags 배열의 각 객체에서 hashtag 속성의 값만을 추출하여 새로운 배열을 생성하면 원하는 결과를 얻을 수 있습니다. 이는 JavaScript에서 배열을 변환할 때 흔히 사용되는 방법입니다.

const hashtagsWithNames = data.Hashtags.map(ht => ht.hashtag);
// 이렇게 하면 hashtagsWithNames는 ["ㅁㄴㄴ", "ㅇㅇㅇ", "ㅂㅂㅂ"] 형식의 배열이 됩니다.

세부적인 코드 구성은 질문자님의 프로젝트 구조와 데이터 형태에 맞게 조정해야 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.