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

代码中findIndex始终返回-1:元素存在却无法获取索引问题

问题原因及解决办法

原因

你的findIndex回调函数存在返回值缺失的问题:

  • 当回调函数用大括号{}包裹代码块时,必须显式用return返回判断结果;
  • 当前代码里的a.NAME == result.NAME仅执行了比较操作,没有返回该结果,回调函数默认返回undefined;
  • findIndex会把undefined判定为false,因此无法匹配到目标元素,始终返回-1。

解决办法

方法1:添加显式return

给回调函数的比较语句加上return,明确返回判断结果:

let index = this.List.findIndex((a:any) => {
  return a.NAME == result.NAME
})

方法2:简化箭头函数写法

如果回调只有一行返回逻辑,可以省略大括号和return,箭头函数会自动返回该行的执行结果:

let index = this.List.findIndex((a:any) => a.NAME == result.NAME)

额外建议

为避免隐式类型转换导致的匹配错误,建议使用严格相等运算符===替代==,同时确认NAME的大小写、前后空格等是否完全一致:

let index = this.List.findIndex((a:any) => a.NAME === result.NAME)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:14:53