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

如何按键筛选对象数组?(目标键为0002)

解决数组筛选问题

原代码问题分析

你的代码存在几个关键错误:

  1. filter 方法返回的是符合条件的数组元素(整个对象),无法直接得到评论数组
  2. 判断逻辑错误:你需要检查键(Key)是否等于字符串 "0002",而非将数组(Review[Key])与数字 0002 比较
  3. for 循环内直接 return 会导致回调函数第一次循环就终止,无法遍历到目标键

正确解决方案

方法一:定位目标对象后提取评论数组

这是最直观的实现方式,先找到包含 "0002" 键的对象,再取出对应的值:

// 找到包含目标键的数组元素
const targetItem = AllReviews.find(item => Object.keys(item).includes("0002"));
// 取出评论数组,未找到则返回空数组
const reviewsFor0002 = targetItem ? targetItem["0002"] : [];

方法二:用reduce一步提取结果

通过reduce直接遍历数组,拿到目标评论数组:

const reviewsFor0002 = AllReviews.reduce((result, item) => {
  return item["0002"] || result;
}, []);

方法三:用flatMap简化代码

如果数组中存在多个含 "0002" 键的对象,flatMap 会自动合并结果(你的场景下仅返回一组数据):

const reviewsFor0002 = AllReviews.flatMap(item => item["0002"] || []);

最终结果

运行上述代码后,reviewsFor0002 会得到:

[
  {"Review": "Mouth-watering", "Notes": "Approved"},
  {"Review": "Easy As Pie", "Notes": "Approved"}
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:32:09