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

如何从商品数据对象的variations中查找最低price_excl_vat值

方案1:获取单个商品下所有规格的最低价

如果入参是data数组中的单个商品对象,可直接提取对应层级的价格计算最小值:

priceCalculationCheapest(productObj) {
  // 提取当前商品所有规格的不含税价格
  const priceList = productObj.attributes.variations.map(item => item.price_excl_vat)
  // 兼容规格为空的情况,无价格时返回null可自行修改默认值
  return priceList.length ? Math.min(...priceList) : null
}

调用示例:获取第一个商品的最低价,传入你的原始数据.data[0]即可。

方案2:获取所有商品所有规格的全局最低价

如果需要遍历整个data数组,汇总所有商品的所有规格找全局最低价:

getGlobalCheapestPrice(rootData) {
  // 扁平嵌套结构,提取所有规格的价格
  const allPriceList = rootData.data.flatMap(product => 
    product.attributes.variations.map(item => item.price_excl_vat)
  )
  return allPriceList.length ? Math.min(...allPriceList) : null
}

扩展:获取最低价对应的完整规格信息

如果需要同时拿到最低价对应的规格名称、描述等完整数据,可以用reduce实现:

getCheapestVariation(productObj) {
  const variations = productObj.attributes.variations
  if (!variations.length) return null
  return variations.reduce((minItem, currentItem) => 
    minItem.price_excl_vat < currentItem.price_excl_vat ? minItem : currentItem
  )
}

你原有代码的问题在于直接对最外层对象取Object.values,只能拿到type、id、attributes这类最外层属性值,没有深入到嵌套的variations层级,自然取不到价格数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:45:03