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

如何查找数组最大值对应索引并返回同索引其他字段值(含JSON实操案例)

实现步骤与代码示例

核心逻辑

  • 先过滤Benefits数组,剔除type为「All Benefits」的无效条目
  • 遍历过滤后的有效条目,比对numUsed字段取值,找到数值最高的元素
  • 提取该元素的type与numUsed字段,拼接成要求格式的提示内容

代码实现(JavaScript为例)

// 示例完整JSON数据
const payload = {
  "Benefits": [
    {
      "type": "Benefit A",
      "dollarSavings": 0,
      "timeSavings": 0,
      "numUsed": 5
    },
    {
      "type": "Benefit B",
      "dollarSavings": 89.85,
      "timeSavings": 47700,
      "numUsed": 15
    },
    {
      "type": "Benefit C",
      "dollarSavings": 99.85,
      "timeSavings": 46700,
      "numUsed": 18
    },
    {
      "type": "All Benefits",
      "dollarSavings": 189.70,
      "timeSavings": 94400,
      "numUsed": 38
    }
  ]
}

// 1. 过滤无效条目
const validList = payload.Benefits.filter(item => item.type !== 'All Benefits')
// 2. 查找numUsed最高的条目
const topBenefit = validList.reduce((maxItem, currentItem) => {
  return currentItem.numUsed > maxItem.numUsed ? currentItem : maxItem
}, validList[0])
// 3. 生成提示语
// 英文提示
const enTip = `Your favourite benefit was ${topBenefit.type}, you used it ${topBenefit.numUsed} times!`
// 中文提示
const zhTip = `你最常用的福利是${topBenefit.type},累计使用了${topBenefit.numUsed}次!`

console.log(enTip) // 输出:Your favourite benefit was Benefit C, you used it 18 times!

特殊场景处理

如果存在多个福利的numUsed取值并列最高的情况,可以修改第二步的逻辑,把所有符合最大值的条目全部筛选出来再做拼接即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:36:04