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

如何用JavaScript根据ID从对象数组中提取目标对象?

根据ID提取数组中的对应对象

你可以用两种方式实现需求,下面分别说明:

方法一:直接用find()(最简洁)

find()方法会遍历数组,返回第一个满足条件的元素,比findIndex()更直接,适配你的场景:

const arr = [
  {"id": 1,"name": "Bob","age": 36},
  {"id": 2,"name": "Laura","age": 24},
  {"id": 3,"name": "Michael","age": 28},
  {"id": 4,"name": "Tim","age": 54}
];

function getObjectById(targetId) {
  return arr.find(item => item.id === targetId);
}

// 调用示例:传入4
console.log(getObjectById(4));
// 输出:{"id": 4,"name": "Tim","age": 54}

如果传入的ID不存在,find()会返回undefined,你可以根据需求添加默认返回值,比如:

return arr.find(item => item.id === targetId) || null;

方法二:用你提到的findIndex()

如果一定要用findIndex(),步骤是先找到对应元素的索引,再通过索引从数组中取出对象:

function getObjectById(targetId) {
  const index = arr.findIndex(item => item.id === targetId);
  // 索引为-1表示没找到对应元素
  return index !== -1 ? arr[index] : null;
}

// 调用示例
console.log(getObjectById(4));
// 输出:{"id": 4,"name": "Tim","age": 54}

两种方法都能实现需求,find()更适合直接获取元素,findIndex()则在需要同时拿到索引和元素的场景更有用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 16:36:20