You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决含列数组的JavaScript对象渲染表格时内容全在首列的问题

问题分析

你的代码问题出在分别遍历不同列的数组,且每个元素都生成独立的行:

  • 遍历manufacturer时,每个元素生成一个只包含该值的<tr>,导致Google、Apple各占一行第一列
  • 接着遍历serialNumber,同样每个元素生成单独行,所有内容都堆在第一列,还完全遗漏了modelNumber列的数据
解决方案

要按行来渲染数据:因为每个列数组的长度一致,我们可以基于其中一个数组的索引,同时取出三列对应位置的值,组合成完整的一行。

修正后的代码如下:

{equipmentTable && (
  <table className="def-tbl">
    <thead>
      <tr> {/* 注意thead里的<th>必须包裹在<tr>内,符合HTML标准结构 */}
        <th>Manufacturer</th>
        <th>Model Number</th>
        <th>Serial Number</th>
      </tr>
    </thead>
    <tbody>
      {equipmentTable.manufacturer.map((_, index) => (
        <tr key={equipmentTable.serialNumber[index]}> {/* 优先用数据里的唯一值当key,比如序列号 */}
          <td>{equipmentTable.manufacturer[index]}</td>
          <td>{equipmentTable.modelNumber[index]}</td>
          <td>{equipmentTable.serialNumber[index]}</td>
        </tr>
      ))}
    </tbody>
  </table>
)}
额外注意事项
  • 标准HTML表格中,<thead>内的表头单元格必须嵌套在<tr>中,之前的写法不符合规范
  • React列表渲染必须添加key属性,优先使用数据中的唯一标识(如序列号)而非索引,避免渲染警告
  • 如果存在各列数组长度不一致的可能,建议先做长度校验,防止索引越界报错

内容的提问来源于stack exchange,提问作者Jordan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 13:27:07