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

TypeScript筛选对象数组获取第一个匹配元素失败如何解决?

问题原因
  • 你使用了带大括号的箭头函数写法,这种写法下必须显式声明return返回判断结果,否则回调函数始终返回undefined,find方法会判定所有项都不匹配,无法返回目标对象。
  • 额外可自行校验你定义的Type枚举/常量中Main对应的取值是否和接口返回的字符串"Main"完全一致,避免值不匹配导致的判断失效。
解决方案

方案1:使用箭头函数隐式返回

直接省略大括号,箭头函数会自动将表达式结果作为返回值,写法更简洁:

const mainProduct = products.find(product => product.subProduct.Type === Type.Main);

方案2:显式补充return语句

如果需要保留大括号(比如后续要在回调中添加其他逻辑),补全return即可:

const mainProduct = products.find(product => {
  return product.subProduct.Type === Type.Main;
})

以上两种写法都可以正常匹配到示例数据中第一个符合要求的对象(subProduct的Id为14的项)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 00:48:03