현재 버전

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

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


수정 이력

2021-04-26 21:40:51 에 아래 내용에서 변경 됨 #3

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

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

2021-04-26 21:40:04 에 아래 내용에서 변경 됨 #2

main.js

var 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] }));

var 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

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

2021-04-26 21:39:13 에 아래 내용에서 변경 됨 #1
main.js
var 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'
    },
    {
        category_large_id: '10003',
        category_large_name: '남성의류',
        category_medium_name: '맨투맨/후드티,티셔츠,자켓,점퍼/야상,셔츠/남방,니트/스웨터,가디건,청바지,면/캐주얼바지,트레이닝,정장',
        category_medium_id: '22001,22002,22003,22004,22005,22006,22007,22008,22009,22010,22011'
    },
    {
        category_large_id: '10004',
        category_large_name: '패션잡화',
        category_medium_name: '엑세서리,모자,지갑,신발,시계,안경/선글라스,가방,벨트/장갑',
        category_medium_id: '23001,23002,23003,23004,23005,23006,23007,23008'
    },
    {
        category_large_id: '10005',
        category_large_name: '뷰티미용',
        category_medium_name: '스킨케어,향수,미용기기,헤어/바디,네일아트/케어,다이어트,남성 화장품,메이크업',
        category_medium_id: '24001,24002,24003,24004,24005,24006,24007,24008'
    },
    {
        category_large_id: '10006',
        category_large_name: '취미애완',
        category_medium_name: '도서/책,희귀/수집품,애완용품,상품권,예술/악기',
        category_medium_id: '25001,25002,25003,25004,25005'
    },
    {
        category_large_id: '10007',
        category_large_name: '스포츠레저',
        category_medium_name: '축구,농구,야구,골프,볼링,자전거,등산/클라이밍,헬스/요가,캠핑,낚시,스케이트보드',
        category_medium_id: '26001,26002,26003,26004,26005,26006,26007,26008,26009,26010,26011'
    },
    {
        category_large_id: '10008',
        category_large_name: '생활문구가구식품',
        category_medium_name: '생활용품,주방용품,가구,식품',
        category_medium_id: '27001,27002,27003,27004'
    }
]

let zip = (a1, a2) => a1.map((x, i) => [x, a2[i]]); 


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

    return {
        large: large,
        medium: medium,
    };
});

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


output

$ node main.js
[
  {
    "large": [
      [
        "10001",
        "디지털/가전"
      ]
    ],
    "medium": [
      [
        "20001",
        "모바일"
      ],
      [
        "20002",
        "가전제품"
      ],
      [
        "20003",
        "pc/모니터/주변기기"
      ],
      [
        "20004",
        "노트북/넷북"
      ],
      [
        "20005",
        "카메라"
      ]
    ]
  },
  {
    "large": [
      [
        "10002",
        "여성의류"
      ]
    ],
    "medium": [
      [
        "21001",
        "원피스"
      ],
      [
        "21002",
        "스커트/치마"
      ],
      [
        "21003",
        "블라우스"
      ],
      [
        "21004",
        "니트/스웨터"
      ],
      [
        "21005",
        "자켓"
      ],
      [
        "21006",
        "티셔츠"
      ],
      [
        "21007",
        "맨투맨/후드티"
      ],
      [
        "21008",
        "가디건"
      ],
      [
        "21009",
        "면/캐주얼 바지"
      ],
      [
        "21010",
        "청바지/스키니"
      ],
      [
        "21011",
        "트레이닝"
      ]
    ]
  },
  {
    "large": [
      [
        "10003",
        "남성의류"
      ]
    ],
    "medium": [
      [
        "22001",
        "맨투맨/후드티"
      ],
      [
        "22002",
        "티셔츠"
      ],
      [
        "22003",
        "자켓"
      ],
      [
        "22004",
        "점퍼/야상"
      ],
      [
        "22005",
        "셔츠/남방"
      ],
      [
        "22006",
        "니트/스웨터"
      ],
      [
        "22007",
        "가디건"
      ],
      [
        "22008",
        "청바지"
      ],
      [
        "22009",
        "면/캐주얼바지"
      ],
      [
        "22010",
        "트레이닝"
      ],
      [
        "22011",
        "정장"
      ]
    ]
  },
  {
    "large": [
      [
        "10004",
        "패션잡화"
      ]
    ],
    "medium": [
      [
        "23001",
        "엑세서리"
      ],
      [
        "23002",
        "모자"
      ],
      [
        "23003",
        "지갑"
      ],
      [
        "23004",
        "신발"
      ],
      [
        "23005",
        "시계"
      ],
      [
        "23006",
        "안경/선글라스"
      ],
      [
        "23007",
        "가방"
      ],
      [
        "23008",
        "벨트/장갑"
      ]
    ]
  },
  {
    "large": [
      [
        "10005",
        "뷰티미용"
      ]
    ],
    "medium": [
      [
        "24001",
        "스킨케어"
      ],
      [
        "24002",
        "향수"
      ],
      [
        "24003",
        "미용기기"
      ],
      [
        "24004",
        "헤어/바디"
      ],
      [
        "24005",
        "네일아트/케어"
      ],
      [
        "24006",
        "다이어트"
      ],
      [
        "24007",
        "남성 화장품"
      ],
      [
        "24008",
        "메이크업"
      ]
    ]
  },
  {
    "large": [
      [
        "10006",
        "취미애완"
      ]
    ],
    "medium": [
      [
        "25001",
        "도서/책"
      ],
      [
        "25002",
        "희귀/수집품"
      ],
      [
        "25003",
        "애완용품"
      ],
      [
        "25004",
        "상품권"
      ],
      [
        "25005",
        "예술/악기"
      ]
    ]
  },
  {
    "large": [
      [
        "10007",
        "스포츠레저"
      ]
    ],
    "medium": [
      [
        "26001",
        "축구"
      ],
      [
        "26002",
        "농구"
      ],
      [
        "26003",
        "야구"
      ],
      [
        "26004",
        "골프"
      ],
      [
        "26005",
        "볼링"
      ],
      [
        "26006",
        "자전거"
      ],
      [
        "26007",
        "등산/클라이밍"
      ],
      [
        "26008",
        "헬스/요가"
      ],
      [
        "26009",
        "캠핑"
      ],
      [
        "26010",
        "낚시"
      ],
      [
        "26011",
        "스케이트보드"
      ]
    ]
  },
  {
    "large": [
      [
        "10008",
        "생활문구가구식품"
      ]
    ],
    "medium": [
      [
        "27001",
        "생활용품"
      ],
      [
        "27002",
        "주방용품"
      ],
      [
        "27003",
        "가구"
      ],
      [
        "27004",
        "식품"
      ]
    ]
  }
]


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

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

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