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

如何使用JavaScript查找对象数组中匹配指定字段的目标元素

错误原因

你写的代码存在几个问题,对应报错和结果不符合预期的原因如下:

  • 混淆了数组方法的适用场景:map作用是遍历数组生成等长的新数组,你需要的是匹配单个符合条件的元素,不需要使用map
  • find是数组专属方法,你在map的回调里拿到的item是数组里的单个对象,本身不是数组,调用item.find自然会触发类型错误
  • 匹配值书写错误:你要筛选的是category为'two'的元素,代码里写的是'2',匹配规则不匹配
  • 语法存在遗漏:map的回调括号、调用括号没有正确闭合

修复后的代码

直接对items数组调用find方法找到匹配的对象,再取对应的id字段即可:

// 先匹配category为two的元素
const target = items.find(item => item.category === 'two');
// 兼容找不到元素的场景,避免报错
const id = target ? target.id : null;
console.log(id); // 输出 '2'

如果你确定数组中一定存在符合条件的元素,可以简化为一行写法:

const id = items.find(item => item.category === 'two').id;

扩展场景

如果存在多个符合条件的元素,需要收集所有对应id,可以用filter+map组合实现:

const idList = items
  .filter(item => item.category === 'two')
  .map(item => item.id);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 23:21:02