根据另一个值过滤元素

2023-12-31

我想输出 ReactJs 中每个帖子的所有问题的数量。 为此,我创建了下一个代码:

const posts = [{
        title: 1,
        id: "123"
    },
    {
        title: 2,
        id: "1234"
    },
    {
        title: 3,
        id: "12345"
    }
]

const questions = [{
        id: 55,
        name: 'question one',
        id_post: '123'
    },
    {
        id: 56,
        name: 'question two',
        id_post: '123'
    },
    {
        id: 57,
        name: 'question three',
        id_post: '1234'
    },
    {
        id: 58,
        name: 'question four',
        id_post: '123'
    },

];

posts.map( (e, k) => {
    return (
      <Link key={k} to={`demo/${e.id}/url`}>
      { questions.filter(here i want to output the number of questions that correspond to each post)}
      </Link>
    )
})

I have posts数组和questions大批。我想创建一个Link在 url 中使用自己的 id,同时过滤每个帖子的问题数量,并在Link输出数字。对此该怎么办呢?

...下一个问题是:我正在使用 ant design、table 组件,在那里我可以使用下一个结构:

`  render: ()=>(
    console.log('render'),
    events.map( (e, key) => {
      console.log(ev.id);
        return (
            <Link key={k} to={`demo/${e.id}/url`}>
            { questions.filter(q => q.id_post === e.id).length }
            </Link>
        )
      )
    })

I use this to create a column in my table. The problem is that i have to many renders. When i put this code i get all ids in控制台.log(ev.id)on each render. And at the end i get for example not0as length but00000000`,取决于我有多少个渲染或 ID。怎么解决这个问题呢?请看一下这一行:45https://codesandbox.io/s/8i1dy https://codesandbox.io/s/8i1dy


一种可能的方法是预先进行此计数:

const questionCountByPost = questions.reduce((acc, q) => {
  const postId = q.id_post;
  acc[postId] = (acc[postId] || 0) + 1;
  return acc;
}, {});

...每次您的帖子或问题发生变化时,这看起来都是一件好事。您可以在地图函数中使用此对象,如下所示:

return (
  <Link key={k} to={`demo/${e.id}/url`}>
  { questionCountByPost[e.id] }
  </Link>
)

另一种方法是直接在模板中进行此计数:

return (
  <Link key={k} to={`demo/${e.id}/url`}>
  { questions.filter(q => q.id_post === e.id).length }
  </Link>
)

它的性能较差(因为您每次都必须遍历整个数组),但显然更具可读性。如果帖子和问题的数量不是那么大,这可能是一个更好的解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据另一个值过滤元素 的相关文章

  • IE从哪个版本开始支持Object.create(null)?

    您可以通过多种方式在 JavaScript 中创建对象 creates an object which makes the Object prototype of data var data1 new Object Object liter
  • 摩卡 - Chai Karma“套件未定义”

    我对 jscript tdd 很陌生 遇到了问题 希望有人能告诉我我在做什么 在浏览器中运行测试 通过 HTML 文件 一切正常 通过节点和业力运行它们我得到以下异常 我想在 node js 主机的 karma 中使用 Mocha 和 Ch
  • 图像无法在带有 DOM 的 IE 中加载:控制台中的 7009 错误(无法解码)

    当在 IE 中的单个页面上加载许多图像时 在 IE11 中重现 其中一些图像开始加载失败 并在控制台中出现类似以下警告的内容 DOM7009 无法解码 URL 处的图像 某些唯一的 url 当我查看网络流量时 似乎确实从服务器收到了每个图像
  • 如何让 Django 和 ReactJS 协同工作?

    New to Django and even newer to ReactJS I have been looking into AngularJS and ReactJS but decided on ReactJS It seemed
  • React-Redux:state.setIn() 和 state.set() 有什么区别?

    我见过使用setIn and set 在一些react redux代码中 state setIn state set 我在这里找到了一些文档https facebook github io immutable js https facebo
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 将 GMT 时间转换为当地时间

    我以这种格式从我的服务器获取 GMT 时间 Fri 18 Oct 2013 11 38 23 GMT 我的要求是使用Javascript将此时间转换为本地时间 例如 如果用户来自印度 首先我需要采用时区 5 30并将其添加到我的服务器时间并
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • React onClick 事件仅在渲染组件时触发

    动态渲染组件的 onClick 函数应通过 useState 设置所选日期 imgs 上的 onClicks 完全按照您的预期工作 没有任何问题 即使只是在其位置放置一个带有 onClick 属性的 div 也是行不通的 当组件渲染时 on
  • DataTables row.add 到特定索引

    我正在替换这样的行项目 var targetRow entity row dataTable targetRow closest table dataTable DataTable dataTable row targetRow remov
  • 将 UMD Javascript 模块导入浏览器

    你好 我正在对 RxJS 进行一些研究 我可以通过在浏览器中引用它来使用该库 如下所示 它使用全局对象命名空间变量 Rx 导入 我可以制作可观察的东西并做所有有趣的事情 当我将 src 更改为指向最新的 UMD 文件时 一切都会崩溃 如下所
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • 正则表达式 - 从 markdown 字符串中提取所有标题

    我在用灰质 https www npmjs com package gray matter 以便将文件系统中的 MD 文件解析为字符串 解析器产生的结果是这样的字符串 n Clean er ReactJS Code Conditional
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 使用 ApolloClient 从 useContext 挂钩导入一个简单变量

    我的反应相对较新 似乎无法导入client来自上下文的变量 我有一个名为 federation tsx 的文件 其中包含一些代码 我相信这应该是相关部分 const link createHttpLink uri process env U
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va
  • 使用 MongoDB 和 Nodejs 插入和查询日期

    我需要一些帮助在 mongodb 和 nodejs 中按日期查找记录 我将日期添加到抓取脚本中的 json 对象 如下所示 jsonObj last updated new Date 该对象被插入到 mongodb 中 我可以看到如下 la

随机推荐

  • 新 Firebase 中的 Firebase AngularFire

    我有一个角度应用程序 它利用 angularFire 库 firebase文档中指出支持angularfirehttps firebase google com support guides firebase web update your
  • 在烧瓶中嵌入散景图和数据表

    我正在尝试使用 Bokeh 文档中提供的一些示例将散景图和散景数据表嵌入到烧瓶生成的网站 同一页面 中 两个组件都独立工作 我尝试通过 gridplot 将它们放在一起 但这似乎只适用于绘图 而数据表是一个 小部件 我可能缺少一些非常基本的
  • 在 Visual Studio Code 中进行格式化时,将 HTML 属性包裹在用户设置的新行上

    在我们的团队中 有些人使用 Webstorm 其他人使用 Visual Studio Code 当用户将属性放在新行上时 Webstorm 会垂直对齐属性 它将与行中的最后一个属性对齐 Visual Studio Code 有一个设置 您可
  • 动画内在内容大小的变化

    我有一个 UIView 子类 它绘制一个半径变化的圆 带有漂亮的弹性动画 视图决定了圆的大小 我希望这个 UIView 子类更改其帧大小以匹配对圆半径的动画更改 并且我希望这些更改能够修改连接到视图的任何 NSLayoutConstrain
  • .net micro (µ) 希腊字母大写问题

    我有以下代码 string firstMicro aa u00b5 bb string secondMicro aa u03bc bb Assert IsFalse firstMicro secondMicro string upperFi
  • 如何显示 PHP 错误?

    我已经检查了我的 PHP ini 文件 php ini and display errors已设置 并且错误报告也已设置E ALL 我已经重新启动了我的 Apache 网络服务器 我什至将这些行放在脚本的顶部 它甚至没有捕获简单的解析错误
  • 负载平衡 Web 服务器上的 Orchard CMS

    我正在考虑在负载平衡服务器上运行 Orchard CMS 两台带有硬件负载平衡器的 Web 服务器和一个 SAN 文件共享 我一直无法找到这方面的任何信息 我想知道是否会存在更新和缓存问题 如果缓存页面 更新是否会传播到其他服务器 我还想知
  • Android:如何以对话框或弹出窗口的形式显示 wifi(选择要连接的 SSID)?

    我开发了一个应用程序 想要将 wifi 网络显示为对话框 弹出窗口 我的代码是 startActivity new Intent WifiManager ACTION PICK WIFI NETWORK It just show wifi
  • Certbot - 找不到合适的 TLS CA 证书捆绑包 [Archlinux]

    我正在尝试通过 certbot 软件包版本 0 21 1 1 从 Let s Encrypt It 生成证书 但出现错误 我正在使用 webroot 模块 OSError Could not find a suitable TLS CA c
  • 基于Ajax响应的Reactjs动态页面中404如何处理?

    我有带有动态 ID 的反应组件
  • 芹菜:“明显偏离”

    我的分布式系统上的芹菜有很大的问题 我有几台不同本地化的机器 并且我的日志文件中有很多警告 例如 与 celery host 发生重大偏差 我能够设置日期以返回相同的值 即使机器位于不同的国家 地区 但 python print utcof
  • 我不想在生成记录时显示 mysql 中的某些表和某些列

    由于我已经让管理员动态创建表单 当他创建表单时 我所做的是动态创建表单的表 一切都工作正常 现在我想显示用于生成报告的表格和列 我不想表现出来 用户登录 地点 地点 用于生成报告的表格和三列 user id 用户常用号 年份 这三列对于我动
  • 你的清单中的 android:description 标签出现在哪里?

    android label 参数显示在主屏幕上的图标下方 但我看不到 android description 标签显示在手机上的位置 主屏幕 应用程序设置菜单 我在Android官方文档中没有找到答案 任何想法 虽然我在 Android 操
  • HTML 复选框表单和 HTTP URL

    所以 我有这个 HTML 表单
  • 变量名中的 Perl 变量替换

    usr bin perl my var a sub a a var a a print var sub a n sub b b var b b print var sub b n DATA b 为什么打印b 而不打印a 这对我来说似乎是非常
  • 从 v8::Arguments 转换为 C++ 类型

    我正在尝试用 C 创建 Node js 模块 但我对 v8 Arguments 类感到困惑 假设我有一个用于发送电子邮件的 Javascript 类 它有一个具有以下签名的方法 Mailer sendEmail Array recipien
  • 如何从多项式拟合中提取方程?

    我的目标是将一些数据拟合到多项式函数并获得包括拟合参数值的实际方程 我适应了这个例子 http scikit learn org stable auto examples linear model plot polynomial inter
  • Apple 开发人员 - 无效的 CSR、无效证书

    我生成 certSigningRequest通过钥匙串访问文件 Keychain Access gt Certificate Assistant gt Request a Certificate From a Certificate Aut
  • AS3 中强制垃圾收集?

    是否可以以编程方式强制在 ActionScript 3 0 中运行完整的垃圾回收 假设我已经使用 eventListener 创建了一堆 Display 对象 并且一些 DO 已被删除 一些 eventListener 已被触发并删除等 是
  • 根据另一个值过滤元素

    我想输出 ReactJs 中每个帖子的所有问题的数量 为此 我创建了下一个代码 const posts title 1 id 123 title 2 id 1234 title 3 id 12345 const questions id 5