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

如何获取数组中首个满足指定条件的对象

问题分析与解决方案

你的代码问题出在**filter方法的使用场景错误**:

  • filter会遍历整个数组,返回所有满足条件的元素组成的新数组
  • 你当前的判断条件是building.id == 1,而数组里所有对象的id都是1,所以最终得到的是原数组的完整副本,自然无法拿到你想要的单个目标对象

要获取第一个city_id: 1的对象,推荐用find方法,它会在找到第一个匹配项后立即停止遍历,返回该元素:

const building_arr = [
    { id: 1, name: 'Test 1', city_id: 5 },
    { id: 1, name: 'Test 2', city_id: 1 },
    { id: 1, name: 'Test 3', city_id: 1 },
    { id: 1, name: 'Test 4', city_id: 3 },
    { id: 1, name: 'Test 5', city_id: 5 },
];
// 获取第一个city_id为1的对象
const targetBuilding = building_arr.find(building => building.city_id === 1);
console.log(targetBuilding); // 输出 { id: 1, name: 'Test 2', city_id: 1 }

如果坚持要用filter,也可以在结果数组中取第一个元素,但这种方式会遍历整个数组,效率不如find:

const targetBuilding = building_arr.filter(building => building.city_id === 1)[0];

内容的提问来源于stack exchange,提问作者Hai Truong IT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:57:16