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

如何根据Id值过滤对象数组并返回对应结果?

按ID过滤对象数组的解决方案

嘿,我猜你遇到的问题大概率是把赋值运算符=当成了相等判断运算符——你写的if(value.id = myVariableID)是在给value.id赋值,而不是判断它和目标ID是否相等!这肯定不会得到你想要的结果,咱们来一步步解决这个问题。

最简洁的方法:用Array.filter()

JavaScript的数组原生方法filter()就是专门用来做这种过滤操作的,比嵌套循环清爽太多。它会遍历数组,把符合条件的元素收集起来返回一个新数组。

举个例子,假设你的对象数组长这样:

const items = [
  { id: 1, name: "苹果" },
  { id: 2, name: "香蕉" },
  { id: 1, name: "红富士苹果" },
  { id: 3, name: "橙子" }
];

要筛选出id=1的元素,只需要这么写:

const targetId = 1;
const filteredItems = items.filter(item => item.id === targetId);
console.log(filteredItems);

输出结果(Id=1时):

[
  { id: 1, name: "苹果" },
  { id: 1, name: "红富士苹果" }
]

如果你坚持用循环(比如forEach/each)

如果你之前习惯用循环,那只需要把判断条件改对就行——用===(严格相等)或者==(松散相等),而不是=。比如用原生的forEach:

const targetId = 1;
const filteredItems = [];
items.forEach(item => {
  // 这里一定要用===或者==,不是=!
  if (item.id === targetId) {
    filteredItems.push(item);
  }
});
console.log(filteredItems);

这样也能得到和上面一样的结果。

关键提醒

  • 永远记住:=是赋值,==/===才是判断相等
  • ===会同时判断值和类型,比==更严谨,推荐优先使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:06:15