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

JS数组通过id查找对应对象时返回全部数据的解决方法

问题原因及修复方法

你的代码匹配失败核心是类型不匹配问题:

  • 数组内元素的id字段是数字类型(比如目标项的id值是数值4),但你在find的判断条件里用了字符串'4'做===严格相等比较。严格相等运算符不会做隐式类型转换,4 === '4'的判定结果永远是false,自然无法匹配到目标项。
  • 额外排查点:你代码中调用find的变量写的是myDat,请确认存储目标数组的变量名确实为该值,避免因变量名写错引用了其他全量数据,导致返回不符合预期的结果。

正确实现代码

// 比较时保持类型一致,直接用数字4匹配
const item = myData.find(item => item.id === 4);
console.log(item);
// 输出:{ item: {Name: "Name2", working: true, extra: {active: true}}, id: 4 }

如果你拿到的目标id本身是字符串格式(比如从URL参数、表单输入获取的值),可以先转成数字再比较:

const targetId = '4'; // 字符串格式的目标id
const item = myData.find(item => item.id === Number(targetId));

注意:不要随意把===换成==来解决类型问题,双等的隐式转换规则容易埋下其他类型判断的隐患,统一类型后再比较是更稳妥的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:33:13