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

React.js中使用map方法将同组对象渲染到同一表格行

问题根源

当前代码双层map的返回层级错了:内层遍历单个商品时直接返回<tr>标签,导致组内有多少个商品就会生成多少个独立表格行,自然出现每个商品单独占一行的效果。

修复代码

把<tr>的生成逻辑移到外层商品组的遍历层级,内层遍历仅负责在同一个单元格内渲染组内所有商品内容,同时补全第二列的组总价计算即可,替换原有tbody部分代码:

<tbody>
  {cardItems.map((groupItems, groupIdx) => {
    // 计算当前分组的商品总金额
    const groupTotalPrice = groupItems.reduce((total, currentItem) => total + currentItem.totalPrice, 0)
    return (
      <tr key={groupIdx}>
        <td>
          {groupItems.map((item, itemIdx) => (
            <div key={itemIdx} style={{ marginBottom: itemIdx !== groupItems.length - 1 ? '8px' : 0 }}>
              <b>Item:</b> {item.title}, <b>Item Price:</b> {item.price},{' '}
              <b>Item Count:</b> {item.count}, <b>Item Total Price:</b> {item.totalPrice}
            </div>
          ))}
        </td>
        <td>{groupTotalPrice}</td>
      </tr>
    )
  })}
</tbody>
实现逻辑说明
  • 外层遍历二维数组的每个内层商品组时,每组仅生成1个<tr>表格行,保证同组商品在同一行
  • 内层遍历组内商品时,仅在第一列的<td>单元格内渲染商品详情,同组多个商品用div做块级分隔,不会拆分成新行
  • 自动计算每组商品的合计总价,填充到表头对应的Total Items Price列
  • 补充了循环渲染所需的key属性,符合React渲染规范,避免控制台告警

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:51:22