如何显示嵌套数组的表头

How to display table headers for nested arrays

提问人:user20183888 提问时间:3/15/2023 更新时间:3/15/2023 访问量:63

问:

我在html表格中有一个嵌套数组。能够显示表格。但是,我在将标题插入嵌套数组列时遇到了问题。

代码如下: 表 .js

const Table= college?.map((item =>   
      <tr >
       <td> {item.department.map((item,i) => (
                  <tr>
                    <td>{item.studentName}</td>
                    <td>{item.subject}</td>
                    <td>{item.daysClassattended}</td>
                  </tr>                        
             ))} 
       </td>                     
     </tr>
    ));
         return (
    <div>
      <table>
        <thead>
          <tr>
            <th>Student Name </th>
            <th>Subject </th>
            <th>Days Attended Classes</th>
          </tr>
        </thead>
        <tbody>{Table}</tbody>
      </table>;
    </div>

在嵌套数组表中插入标头的最佳方法是什么?提前致谢

html reactjs html-table 嵌套 前端

评论

0赞 Ben Stephens 3/15/2023
你的问题是否与使用 React 或如何构建 HTML 有关?(或两者兼而有之?在表格结构方面,您想实现什么?

答:

0赞 motto 3/15/2023 #1

如果您只是想将所有学生一起列出而不区分他们的部门,那么这是一个选项:flatMap

  const Table = college?.flatMap((item =>   
    item.department.map((item,i) => (
      <tr>
        <td>{item.studentName}</td>
        <td>{item.subject}</td>
        <td>{item.daysClassattended}</td>
      </tr>                        
    ))
  ));
1赞 Sohail 3/15/2023 #2

若要向 HTML 表中的嵌套数组列插入标题,可以按如下方式修改代码:

const Table = college?.map((item) => {
  return (
    <>
      <tr>
        <th colSpan="3">{item.departmentName}</th>
      </tr>
      <tr>
        <th>Student Name</th>
        <th>Subject</th>
        <th>Days Attended Classes</th>
      </tr>
      {item.department.map((student, i) => (
        <tr key={i}>
          <td>{student.studentName}</td>
          <td>{student.subject}</td>
          <td>{student.daysClassattended}</td>
        </tr>
      ))}
    </>
  );
});

return (
  <div>
    <table>
      <tbody>{Table}</tbody>
    </table>
  </div>
);