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

React中如何筛选包含'def'的category数组的对象?

修正数组包含元素的筛选逻辑

嘿,问题出在你直接用全等运算符比较数组和字符串啦!因为category是数组类型,a.category === 'def'本质是把数组和字符串做全等比较,这永远会返回false,自然筛选不到任何符合条件的对象。

正确的做法:使用数组的includes()方法

JavaScript数组内置了includes()方法,专门用来判断数组是否包含某个指定元素,它会返回布尔值,完美适配filter的回调需求。

修正后的代码如下:

// 建议把filter的参数名从a改成item,避免和外部数组a混淆,可读性更好
a.filter((item) => item.category.includes('def'))
  .map((item) => (<div>{item.number}</div>))

额外补充:

  • includes()是ES6引入的方法,现代浏览器和Node.js都支持;如果需要兼容极旧环境,可以用indexOf('def') !== -1替代,效果完全一致:
    a.filter((item) => item.category.indexOf('def') !== -1)
      .map((item) => (<div>{item.number}</div>))
    
  • 把参数名从a改成item是个小细节,但能避免变量命名冲突,让代码更易读易懂。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:02:26