for문을 이용한 json 배열 배치하는 테이블 생성

조회수 238회

안녕하세요 for문에 대해 헷갈려 질문 드립니다

현재 json 데이터를 활용한 테이블을 구현하고 있습니다.

let monthPrint = [
    { SelectedDate: '2022-12-01' },
    { SelectedDate: '2022-12-02' },
    /* ... */
    { SelectedDate: '2022-12-31' }
];

let itemCountList = [
    { Itemdate: '2022-12-09', Itemcounta: '4', Itemcountc: '0' },
    { Itemdate: '2022-12-19', Itemcounta: '0', Itemcountc: '5' },
    { Itemdate: '2022-12-20', Itemcounta: '0', Itemcountc: '5' },
    { Itemdate: '2022-12-21', Itemcounta: '0', Itemcountc: '5' },
    { Itemdate: '2022-12-22', Itemcounta: '0', Itemcountc: '5' },
    { Itemdate: '2022-12-23', Itemcounta: '0', Itemcountc: '4' },
    { Itemdate: '2022-12-26', Itemcounta: '0', Itemcountc: '5' }
];

let items = ['Itemcounta', 'Itemcountc'];
date itemcounta itemcountc
12-01 - -
12-02 0 5
12-03 0 6
12-04 - -
12-05 - -
12-06 - -

이런식으로 monthPrint.SelectedDate와 itemCountList.Itemdate 날짜가 같다면
itemcounta 와 itemcountc를 items의 갯수 (2개)만큼 나열하고싶습니다. 날짜가 다르다면 '-' 을 붙이고 싶습니다.

    for (var i = 0; i < monthPrint.length; i++) {
        ExcelTable += '<tr><td>' + monthPrint[i].SelectedDate.substr(5, 10) + '</td>';
        for (var j = 0; j < itemCountList.length; j++) {

            if (monthPrint[i].SelectedDate.substr(5, 10) == itemCountList[j].Itemdate.substr(5, 10)) {
                for (var k = 0; k < items.length; k++) {

                    ExcelTable += '<td>' + itemCountList[j][items[k]] + '</td>';
                }
                ExcelTable += '</tr>';
            } else {

            }
        }
    }

else 부분에서 continue를 하더라도 itemCountList에 들어있는 날짜 갯수만큼 비교하여

date itemcounta itemcountc
12-01 - - - - - -
12-02 0 5 - - - -
12-03 0 6 - - - -
12-04 - - - - - -
12-05 - - - - - -
12-06 - - - - - -

이렇게 6개 다 출력이 됩니다.. 3일동안 붙잡고 했는데도 안되네요 부탁드립니다 ..

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    제가 잘 이해한 건지 모르겠지만, 표의 가로와 세로를 잘 보자면, 실제로 2중 순회해야 하는 것은 monthPrintitems입니다. 전자가 행 즉 tr 태그, 후자가 열 즉 td 태그에 상응하죠.

    그리고 나서, "이번 회차 순회에서 주어진 monthPrint.SelectedDateitems[x]를 기준으로, itemCountList에서 뭔가 꺼내올 건덕지가 있겠는가?" 를 판별해서, 필요한 작업을 하시면 됩니다. 요컨대 itemCountList는 순회 처리의 목적 자료지, 순회의 기준이 아니에요.

    여기까지만 참견하겠습니다. 건투를 빕니다.

    • 감사합니다. items for문을 위로 옮겨 itemCountList 값을 가져오는 식으로 하여 성공했습니다! 어떻게 접근해야 할지 의견을 주신 덕분입니다 정말 감사합니다 열정적인코린이 2022.12.28 09:15

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)