type MainOption = { header: { label: string, }[] }; export function TableElement(mainOption: MainOption, bodyList: { element: JSX.Element }[][]) { if (mainOption.header.length <= 0) { throw new Error(`カラムの数は1以上にして下さい`); } const headerElementList: JSX.Element[] = []; for (const h of mainOption.header) { const index = mainOption.header.indexOf(h); headerElementList.push( {h.label} ); } const bodyElementList: JSX.Element[] = []; let trIndex = 0; for (const body of bodyList) { const tdElementList: JSX.Element[] = []; for (let i = 0; i < mainOption.header.length; i++) { const tdBody: { element: JSX.Element } = body[i]; tdElementList.push({tdBody.element}); } bodyElementList.push( {tdElementList} ); trIndex += 1; } return ( {headerElementList} {bodyElementList}
); }