그누보드 메뉴에서
본문
그누보드 메뉴(g5_menu)를 읽어오면 아래와 같습니다. (me_order를 오름차순으로.)
[
{
"meId": 39,
"meCode": "1020",
"meName": "공지사항",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=notice",
"meTarget": "self",
"meOrder": 1,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 44,
"meCode": "3020",
"meName": "갤러리",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=gallery",
"meTarget": "self",
"meOrder": 1,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 46,
"meCode": "50",
"meName": "회사소개",
"meLink": "http://youngcart5.test/bbs/content.php?co_id=company",
"meTarget": "self",
"meOrder": 1,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 37,
"meCode": "10",
"meName": "자유게시판",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=free",
"meTarget": "self",
"meOrder": 2,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 38,
"meCode": "1010",
"meName": "갤러리",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=gallery",
"meTarget": "self",
"meOrder": 2,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 43,
"meCode": "3010",
"meName": "자유게시판",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=free",
"meTarget": "self",
"meOrder": 2,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 40,
"meCode": "1030",
"meName": "질문답변",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=qa",
"meTarget": "self",
"meOrder": 3,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 45,
"meCode": "40",
"meName": "테스트",
"meLink": "http://youngcart5.test/bbs/group.php?gr_id=test",
"meTarget": "self",
"meOrder": 3,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 41,
"meCode": "20",
"meName": "질문답변",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=qa",
"meTarget": "self",
"meOrder": 4,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 42,
"meCode": "30",
"meName": "쇼핑몰",
"meLink": "http://youngcart5.test/bbs/group.php?gr_id=shop",
"meTarget": "self",
"meOrder": 5,
"meUse": 1,
"meMobileUse": 1
}
]
그런데 이것을 아래와 같이 만들려고 합니다. (meCode 4자리인 것은 서브메뉴로 앞의 두자리와 매칭되는 메뉴 안으로 집어 넣기)
[
{
"meId": 46,
"meCode": "50",
"meName": "회사소개",
"meLink": "http://youngcart5.test/bbs/content.php?co_id=company",
"meTarget": "self",
"meOrder": 1,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 37,
"meCode": "10",
"meName": "자유게시판",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=free",
"meTarget": "self",
"meOrder": 2,
"meUse": 1,
"meMobileUse": 1,
"submenus": [
{
"meId": 39,
"meCode": "1020",
"meName": "공지사항",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=notice",
"meTarget": "self",
"meOrder": 1,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 38,
"meCode": "1010",
"meName": "갤러리",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=gallery",
"meTarget": "self",
"meOrder": 2,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 40,
"meCode": "1030",
"meName": "질문답변",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=qa",
"meTarget": "self",
"meOrder": 3,
"meUse": 1,
"meMobileUse": 1
},
],
},
{
"meId": 45,
"meCode": "40",
"meName": "테스트",
"meLink": "http://youngcart5.test/bbs/group.php?gr_id=test",
"meTarget": "self",
"meOrder": 3,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 41,
"meCode": "20",
"meName": "질문답변",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=qa",
"meTarget": "self",
"meOrder": 4,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 42,
"meCode": "30",
"meName": "쇼핑몰",
"meLink": "http://youngcart5.test/bbs/group.php?gr_id=shop",
"meTarget": "self",
"meOrder": 5,
"meUse": 1,
"meMobileUse": 1,
"submenus": [
{
"meId": 44,
"meCode": "3020",
"meName": "갤러리",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=gallery",
"meTarget": "self",
"meOrder": 1,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 43,
"meCode": "3010",
"meName": "자유게시판",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=free",
"meTarget": "self",
"meOrder": 2,
"meUse": 1,
"meMobileUse": 1
},
],
}
]
meCode가 2자리인 것만 따로 읽어서 main_menu로 만들고, 4자리짜리만 sub_menu로 만들어서, 2개를 조합하는 자바스크립트를 어떻게 하면 될까요?
아니면 첫번째와 같이 한번에 읽어서 처리하는 방법이라도..
!-->!-->
답변 1
const data = [
{
"meId": 39,
"meCode": "1020",
"meName": "공지사항",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=notice",
"meTarget": "self",
"meOrder": 1,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 44,
"meCode": "3020",
"meName": "갤러리",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=gallery",
"meTarget": "self",
"meOrder": 1,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 46,
"meCode": "50",
"meName": "회사소개",
"meLink": "http://youngcart5.test/bbs/content.php?co_id=company",
"meTarget": "self",
"meOrder": 1,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 37,
"meCode": "10",
"meName": "자유게시판",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=free",
"meTarget": "self",
"meOrder": 2,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 38,
"meCode": "1010",
"meName": "갤러리",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=gallery",
"meTarget": "self",
"meOrder": 2,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 43,
"meCode": "3010",
"meName": "자유게시판",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=free",
"meTarget": "self",
"meOrder": 2,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 40,
"meCode": "1030",
"meName": "질문답변",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=qa",
"meTarget": "self",
"meOrder": 3,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 45,
"meCode": "40",
"meName": "테스트",
"meLink": "http://youngcart5.test/bbs/group.php?gr_id=test",
"meTarget": "self",
"meOrder": 3,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 41,
"meCode": "20",
"meName": "질문답변",
"meLink": "http://youngcart5.test/bbs/board.php?bo_table=qa",
"meTarget": "self",
"meOrder": 4,
"meUse": 1,
"meMobileUse": 1
},
{
"meId": 42,
"meCode": "30",
"meName": "쇼핑몰",
"meLink": "http://youngcart5.test/bbs/group.php?gr_id=shop",
"meTarget": "self",
"meOrder": 5,
"meUse": 1,
"meMobileUse": 1
}
].filter(data => data.meCode.length === 2)
필터를 활용하면 조건에 맞는 배열만 리턴받을 수 있습니다
!-->
답변을 작성하시기 전에 로그인 해주세요.