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

如何在Postman的JS测试中筛选嵌套数组product_option_values含特定值的对象

解决方案

你最初筛选存在product_option_values数组的写法是正确的,这部分逻辑可以直接复用。

你后续尝试的写法存在两个问题:

  • JS中对象属性访问不支持["product_option_values", 0, "name"]这种逗号分隔多参数的写法,逗号运算符会忽略前面的所有参数,最终等价于访问fs.associations["name"],自然无法拿到正确值
  • 固定取下标0只能判断数组第一个元素是否符合要求,无法匹配数组任意位置的符合条件的元素

你可以搭配数组的some()方法完成需求,some()会遍历目标数组,只要有任意一个元素满足判断条件就会返回true,刚好匹配你要的「数组包含特定值」的筛选逻辑,完整代码如下:

// 定义你要匹配的目标值,可根据需求修改
const targetValue = "S";

const filterSmall = jsonData.products.filter(fs => {
  // 兼容不存在product_option_values的情况,避免报错
  const optionValues = fs.associations?.product_option_values;
  if (!Array.isArray(optionValues)) return false;
  // 遍历数组判断是否有元素符合条件
  return optionValues.some(item => item.name === targetValue);
});

如果运行时报可选链?.的语法错误,可以将取值逻辑替换为兼容写法:

const optionValues = fs.associations && fs.associations.product_option_values;

如果你的筛选条件是匹配product_option_values的id而非name,只需要将some()内部的判断条件修改为对应字段即可,注意你示例中products下的product_option_values的id为字符串类型,匹配时需要注意类型一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:57:02