Reactjs 中的 HTML 表格行跨度

2023-12-06

当我使用地图并想要制作这样的表格时我很困惑

table

有数据

const arr =[{
no: 1,
name:'david',
fruit: 'apple',
type:[{ typeName:'red apple'},{typeName:'green apple'}]
},
{
no: 2,
name: 'david',
fruit: 'orange',
type:[{ typeName:'mandarin orange'},{typeName:'bergamot orange'}]
}
]

我已经尝试过,但我卡住了,我只能这样做

我很困惑如何在此表中合并“david”

table2


我解决了这个问题。请检查这段代码

// App.js
import "./styles.css";
import React, { Fragment } from "react";

export default function App() {
  const arr = [
    {
      no: 1,
      name: "david",
      fruit: "apple",
      type: [{ typeName: "red apple" }, { typeName: "green apple" }]
    },
    {
      no: 2,
      name: "david",
      fruit: "orange",
      type: [{ typeName: "mandarin orange" }, { typeName: "bergamot orange" }]
    },
    {
      no: 3,
      name: "jason",
      fruit: "orange",
      type: [{ typeName: "mandarin orange" }, { typeName: "bergamot orange" }]
    }
  ];

  let namesArr = {};
  const rowSpan = arr.reduce((result, item, key) => {
    if (namesArr[item.name] === undefined) {
      namesArr[item.name] = key;
      result[key] = 1;
    } else {
      const firstIndex = namesArr[item.name];
      if (
        firstIndex === key - 1 ||
        (item.name === arr[key - 1].name && result[key - 1] === 0)
      ) {
        result[firstIndex]++;
        result[key] = 0;
      } else {
        result[key] = 1;
        namesArr[item.name] = key;
      }
    }
    return result;
  }, []);

  return (
    <div>
      <table>
        <tr>
          <th>no</th>
          <th>name</th>
          <th>fruit</th>
          <th>type</th>
        </tr>
        {arr.map((el, index) => (
          <tr>
            <td>{el.no}</td>
            {rowSpan[index] > 0 && <td rowSpan={rowSpan[index]}>{el.name}</td>}
            <td>{el.fruit}</td>
            <td style={{}}>
              {el.type.length &&
                el.type.map((ele, i) => (
                  <Fragment>
                    <tr
                      style={{
                        border: "none",
                        display: "flex",
                        flexWrap: "wrap"
                      }}
                    >
                      <td
                        style={{
                          border: "none",
                          width: "100%",
                          borderTop: i > 0 ? "1px solid black" : "none"
                        }}
                      >
                        {ele.typeName}
                      </td>
                    </tr>
                  </Fragment>
                ))}
            </td>
          </tr>
        ))}
      </table>
    </div>
  );
}
// styles.css
table,
th,
td {
  border: 1px solid black;
  border-collapse: collapse;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Reactjs 中的 HTML 表格行跨度 的相关文章

随机推荐

  • 暂停 python 脚本等待按键

    我有一个相对简单的脚本和一个可能简单的问题 在互联网上 我收集了一些关于如何使用直接按键作为 python 代码中的输入的解决方案 我更喜欢这些而不是 raw input 因为它感觉更快 就像如果我有一个包含 3 个选项的菜单 并且每个选项
  • 将 cmd 构建到 Tkinter 窗口中

    您好 我想知道启动程序时是否可以将命令提示符框弹出到 Tkinter 窗口中 就像是 from Tkinter import admin Tk cmd Cmd admin cmd pack admin mainloop 我在窗户上 http
  • Gitflow:将版本错误修复合并回 master 进行开发

    我的问题是围绕 gitflow 流程中的一个非常具体的点 如文档所述here 我已经合并了错误修复release 1 2 into master 并进行适当标记 除了历史看起来如何之外 反向合并与release 1 2与从后合并master
  • 我如何从views.py编辑/更改模型字段的值

    今天是个好日子 我想知道如何通过定义的会话列表中的项目数更改模型字段的值 我已经制作了一个配置文件模型 这是用户模型的 OneToOne Field 在我的 models py 中有一个 级别 字段 如下所示 在 view py 中 我创建
  • P文本添加到html文本中

    我知道这方面有很多主题 而且我已经查看了所有主题 但其中没有一个解决方案适用于我 我在页面编辑器的 文本 一侧放置了一个短代码来运行响应式滑块的 jscript 然而 当我加载页面时 源代码在每一行 JavaScript 后面都有大量的段落
  • 我应该在 Flutter 插件的 Swift 本机代码中传递哪个视图控制器?

    我试图在我的 Flutter 插件中显示来自 Swift 本机代码的 Adcolony 广告 这就是我的 swift 代码的样子 if let interstitial self interstitial interstitial expi
  • MacOS:以编程方式查找串行端口?

    MacOS 中是否有库调用来列出可用的串行端口及其设置 希望有一天能以最小的难度移植到 iOS 上 我宁愿不system ls dev tty and system stty 如果可能的话 您可以使用 IOKit 调用来查找串行端口 See
  • NSTimer Category + Blocks 实现替换选择器

    我对块和 Objective C 很陌生 我正在尝试使用两者来编写我的第一个类别 我的想法是在 NSTimer 上创建一个类别 它将接收一个块作为参数 并且该块将在选择器调用中使用 现在我有这个 NSTimer Additions h im
  • 可靠的数据服务

    如何确保我的文件服务可靠且可扩展 它可以处理多少个并行请求 我正在思考超越硬件能力和带宽的问题 我正在关注在 java servlet 中流式传输大文件 如果这些是静态文件 只需链接到它directly 所有像样的 servlet 容器 应
  • 错误:Tensorflow CNN 维度

    你好 我是 Tensorflow 新手 尝试使用 CNN 运行 cifar10 数据集 我的网络由三层构成 例如 卷积 最大池化 全连接层 Softmax层 下面是我的模型的张量流代码 15 def model X w w2 w o p k
  • 如何在vue2.7中删除slot-scope

    我将 vue 应用程序升级到 vue2 7 并且我想从我的应用程序中删除 slot scope 因为它在 vue3 中已被删除 所以在示例中 我看到 vue2 是这样的
  • TSQL 返回结果是否比 SQL Server 中的存储过程更快

    我有一个以前运行良好的存储过程 需要 4 到 5 秒才能得到结果 过去两个月我没有使用这个存储过程 当我现在调用相同的过程时 需要 5 分钟以上才能产生结果 过去两个月没有记录填充到我的源表中 我转换了存储过程并作为 TSQL 块执行 它恢
  • 为什么 C++ 犰狳中的一些特征向量符号与 Python 和 R 不同

    我想知道为什么 Armadillo 的特征向量中元素的符号与 Python 即 numpy 和 R 等其他语言相反 例如 C using namespace arma vec eigval mat eigvec C 11 initializ
  • 合并配置单元中的两列并在运算符之间使用

    我在配置单元中有一个带有列的登录详细信息表 日期 时间 用户 我正在尝试编写一个查询 它可以选择在两个日期之间登录的用户 同时也考虑到时间 例如 我想知道在这段时间里登录过的用户10 12 2012 02 30 00 and 28 12 2
  • 如何将包含 HTML 实体和无效字符的文本转换为其 UTF-8 等效项?

    我正在更改标题 因为我不知道特殊的破损窗口字符给我带来了问题 使问题看起来像重复的 如何转换 HTML 实体 0 9 类型的字符引用和 a fA F0 9 无效的字符引用 和无效的 Windows 字符 chr 151 到其 UTF 8 等
  • PHP磁盘总空间

    我需要有关 disk total space 函数的帮助 我的代码中有这个 Name Email Diskspace Available
  • 检测草地图像中的植物

    我是计算机视觉领域的新手 我想检测草地图像中的某种植物 Original Image Canny Edge Detection Algorithmus Hough Line Transform After Edge Detection 我已
  • 如何在Web服务器上获取用户的IP地址?

    我在将用户的 IP 地址获取到 Web 服务器时遇到问题 我正在使用这段代码 To get the local IP address string sHostName Dns GetHostName IPHostEntry ipE Dns
  • JavaScript 中的串联继承与类继承

    当我一开始看到连接继承时 它对我来说就像一个组合 但人们一直将其命名为继承 然而 类使用原型来创建将对象连接在一起的原型链 现在的问题是 如果串联继承和类继承都做同样的事情 该使用哪一个 这是两种情况的示例串联继承 function Per
  • Reactjs 中的 HTML 表格行跨度

    当我使用地图并想要制作这样的表格时我很困惑 有数据 const arr no 1 name david fruit apple type typeName red apple typeName green apple no 2 name d