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

如何从数组内对象提取指定值?解决API响应数据提取失败问题

问题解决:提取API数组中指定productTitle对象的id

问题原因

你的过滤逻辑错误——API返回的数组项里,productTitle是嵌套在data子对象中的,但你直接从数组项顶层解构productTitle,自然找不到匹配值,所以返回空数组[]。

修正方案

方法1:直接访问嵌套属性(直观易读)

使用find方法(仅返回第一个匹配项,比filter更适合单目标查找),正确访问item.data.productTitle:

const dataList = JSON.parse(response);
// 找到匹配的对象,找不到则返回undefined
const matchedItem = dataList.find(item => item.data.productTitle === 'test001');
// 提取id,添加容错避免报错
const targetId = matchedItem ? matchedItem.id : '未找到匹配项';
console.log('Result ID:', targetId);

方法2:解构嵌套属性(简洁写法)

通过嵌套解构直接获取data里的productTitle:

const dataList = JSON.parse(response);
// 过滤出匹配的对象数组
const matchedItems = dataList.filter(({ data: { productTitle } }) => productTitle === 'test001');
// 提取第一个匹配项的id,同样做容错
const targetId = matchedItems.length > 0 ? matchedItems[0].id : '未找到匹配项';
console.log('Result ID:', targetId);

额外注意事项

  • 确保API返回的是合法JSON格式:JSON要求所有键名必须用双引号(你提供的示例里用了单引号,实际API返回应该是双引号,否则JSON.parse会抛出语法错误)。
  • 若存在多个productTitle为test001的对象,用filter会返回所有匹配项,此时可根据需求遍历提取id;若仅需第一个匹配项,优先用find提升性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:39:36