개발초보인
90
2021-04-25 22:33:29 작성 2021-04-25 22:35:07 수정됨
6
402

배열안에 객체 push 반복문(?) 문제...




DB에서 이런 식으로 값을 불러왔습니다..


DB에서 불러온 값을 이런 식으로 배열 안에 객체 배열 안에 객체형식(?)으로 넣고싶은데 ㅠㅠ



  반복문을 어떤 식으로 돌려야 되나요?...

제가 멍청한건지 방법이 떠오르질않습니다.....

0
  • 답변 6

  • WRITE_IN_DART✎
    2021-04-25 23:31:54

    category_*_name,를 기준으로 split한 후, 순회하면서 같은 index의 category_*_id와 매칭해보세요

  • 개발초보인
    90
    2021-04-26 00:05:52

    머릿속으론 어떻게해야될지 그려지는데 잘안되네요... 힌트좀만 주실수 있을까요 ..

  • WRITE_IN_DART✎
    2021-04-26 08:47:39

    rawdata를 텍스트로 올려주심 가능할듯...

  • 개발초보인
    90
    2021-04-26 09:56:50

    [

      RowDataPacket {

        category_large_id: '10001',

        category_large_name: '디지털/가전',

        category_medium_name: '모바일,가전제품,pc/모니터/주변기기,노트북/넷북,카메라',

        category_medium_id: '20001,20002,20003,20004,20005'

      },

      RowDataPacket {

        category_large_id: '10002',

        category_large_name: '여성의류',

        category_medium_name: '원피스,스커트/치마,블라우스,니트/스웨터,자켓,티셔츠,맨투맨/후드티,가디건,면/캐주얼 바지,청바지/스키니,트레이닝',

        category_medium_id: '21001,21002,21003,21004,21005,21006,21007,21008,21009,21010,21011'

      },

      RowDataPacket {

        category_large_id: '10003',

        category_large_name: '남성의류',

        category_medium_name: '맨투맨/후드티,티셔츠,자켓,점퍼/야상,셔츠/남방,니트/스웨터,가디건,청바지,면/캐주얼바지,트레이닝,정장',

        category_medium_id: '22001,22002,22003,22004,22005,22006,22007,22008,22009,22010,22011'

      },

      RowDataPacket {

        category_large_id: '10004',

        category_large_name: '패션잡화',

        category_medium_name: '엑세서리,모자,지갑,신발,시계,안경/선글라스,가방,벨트/장갑',

        category_medium_id: '23001,23002,23003,23004,23005,23006,23007,23008'

      },

      RowDataPacket {

        category_large_id: '10005',

        category_large_name: '뷰티미용',

        category_medium_name: '스킨케어,향수,미용기기,헤어/바디,네일아트/케어,다이어트,남성 화장품,메이크업',

        category_medium_id: '24001,24002,24003,24004,24005,24006,24007,24008'

      },

      RowDataPacket {

        category_large_id: '10006',

        category_large_name: '취미애완',

        category_medium_name: '도서/책,희귀/수집품,애완용품,상품권,예술/악기',

        category_medium_id: '25001,25002,25003,25004,25005'

      },

      RowDataPacket {

        category_large_id: '10007',

        category_large_name: '스포츠레저',

        category_medium_name: '축구,농구,야구,골프,볼링,자전거,등산/클라이밍,헬스/요가,캠핑,낚시,스케이트보드',

        category_medium_id: '26001,26002,26003,26004,26005,26006,26007,26008,26009,26010,26011'

      },

      RowDataPacket {

        category_large_id: '10008',

        category_large_name: '생활문구가구식품',

        category_medium_name: '생활용품,주방용품,가구,식품',

        category_medium_id: '27001,27002,27003,27004'

      }

    ]


    row 데이터입니다..

    혼자해볼려고했는데 도저히 안되네요ㅠㅠ

    도움주시면 감사하겠습니다 !

  • WRITE_IN_DART✎
    2021-04-26 21:30:20 작성 2021-04-26 21:40:51 수정됨

    main.js

    const raw_data = [
      {
           category_large_id: '10001',
           category_large_name: '디지털/가전',
           category_medium_name: '모바일,가전제품,pc/모니터/주변기기,노트북/넷북,카메라',
           category_medium_id: '20001,20002,20003,20004,20005'
      },
      {
           category_large_id: '10002',
           category_large_name: '여성의류',
           category_medium_name: '원피스,스커트/치마,블라우스,니트/스웨터,자켓,티셔츠,맨투맨/후드티,가디건,면/캐주얼 바지,청바지/스키니,트레이닝',
           category_medium_id: '21001,21002,21003,21004,21005,21006,21007,21008,21009,21010,21011'
      }
    ]

    const zip = (arr1, arr2) => arr1.map((x, i) => ({ id: x, name: arr2[i] }));

    const conv_data = raw_data.map((data) => ({
               large: zip(
                   data.category_large_id.split(","),
                   data.category_large_name.split(","),
              ),
               medium: zip(
                   data.category_medium_id.split(","),
                   data.category_medium_name.split(","),
              ),
          }));

    console.log(JSON.stringify(conv_data, null, ' '));

    output

    $ node main.js
    [
    {
       "large": [
        {
           "id": "10001",
           "name": "디지털/가전"
        }
      ],
       "medium": [
        {
           "id": "20001",
           "name": "모바일"
        },
        {
           "id": "20002",
           "name": "가전제품"
        },
        {
           "id": "20003",
           "name": "pc/모니터/주변기기"
        },
        {
           "id": "20004",
           "name": "노트북/넷북"
        },
        {
           "id": "20005",
           "name": "카메라"
        }
      ]
    }
     
     ...
       
    ]

    이 코드의 핵심은 zip 함수 입니다.

    자세한건 혼자서 찾아 보시는게 머리에 오래 남을 겁니다...

    foreach와 map 함수도 모르신다면 먼저 찾아보시는걸 권장 드립니다.


    그리고 태그에 언어 정도는 적어두시길 바랍니다...


    update

    예제가 너무 길어서 자릅니다

  • 개발초보인
    90
    2021-04-26 21:49:15

    덕분에 해결했습니다 ..ㅠㅠ 기초가 얇은상태에서 뭘해볼려고 하니까 자꾸 막히는 부분이있네요..

    좀 더  공부해야되겠습니다 감사합니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.