for문을 이용한 json 배열 배치하는 테이블 생성
조회수 245회
안녕하세요 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 답변
-
제가 잘 이해한 건지 모르겠지만, 표의 가로와 세로를 잘 보자면, 실제로 2중 순회해야 하는 것은
monthPrint
와items
입니다. 전자가 행 즉tr
태그, 후자가 열 즉td
태그에 상응하죠.그리고 나서, "이번 회차 순회에서 주어진
monthPrint.SelectedDate
와items[x]
를 기준으로,itemCountList
에서 뭔가 꺼내올 건덕지가 있겠는가?" 를 판별해서, 필요한 작업을 하시면 됩니다. 요컨대itemCountList
는 순회 처리의 목적 자료지, 순회의 기준이 아니에요.여기까지만 참견하겠습니다. 건투를 빕니다.
댓글 입력