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

JavaScript中使用find方法实现按id查找功能失效,问题出在哪里?

问题原因

你写的Array.find()回调函数没有返回判断结果,导致匹配逻辑完全不生效。

Array.find()要求回调函数返回布尔值,用来判断当前遍历项是否是目标元素:

  • 如果你使用带大括号{}的箭头函数写法,必须手动通过return语句返回判断结果
  • 你当前的代码里只写了item.id === id判断表达式,没有加return,回调每次默认返回undefined,会被find判定为false,所以永远找不到匹配的元素,最终返回undefined。

修复方案

有两种正确写法可选:

方案1:使用箭头函数简写(自动返回表达式结果)

getItemById: function (id) {
  let item = data.items.find(item => item.id === id);
  return item;
}

方案2:保留大括号,手动加return

getItemById: function (id) {
  let item = data.items.find(item => {
    return item.id === id;
  });
  return item;
}

修复后的find版本性能比forEach更好:find找到第一个匹配项就会停止遍历,不需要遍历整个数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:15:03