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

如何获取数值数组中最小值对应的属性名称(React场景)

解决方案

你需要把数值和对应的名称绑定在一起,而非仅存储数值,这样找到最小值后就能直接获取对应的名称。这里提供两种实用实现方式:

方法一:先找最小值再匹配名称

先构建包含数值与对应名称的对象数组,再通过最小值筛选出目标名称:

// 构建关联数值与名称的数组
const compareItems = [
  { value: companyResult.physicalAverage, name: "Physical Activity" },
  { value: companyResult.stressAverage, name: "Stress" },
  { value: companyResult.developmentAverage, name: "Personal Development" },
];

// 获取最小数值
const lowestValue = Math.min(...compareItems.map(item => item.value));
// 匹配对应名称(添加可选链与默认值避免空值报错)
const lowestName = compareItems.find(item => item.value === lowestValue)?.name || "No Data";

return ( 
  <div>
    <p>{lowestName}</p>
  </div>
);

方法二:直接找到最小数值的对象(更高效)

使用Array.reduce一次遍历即可锁定数值最小的对象,省去二次查找的开销:

const compareItems = [
  { value: companyResult.physicalAverage, name: "Physical Activity" },
  { value: companyResult.stressAverage, name: "Stress" },
  { value: companyResult.developmentAverage, name: "Personal Development" },
];

// 遍历数组,始终保留数值最小的对象
const lowestItem = compareItems.reduce((prev, current) => {
  return current.value < prev.value ? current : prev;
});

const lowestName = lowestItem?.name || "No Data";

return ( 
  <div>
    <p>{lowestName}</p>
  </div>
);

注意事项

  • 若存在多个相同的最小值,find与reduce都会返回第一个匹配到的对象,符合常规业务需求。
  • 添加?.name和默认值是为了避免companyResult属性为空时触发报错,提升代码健壮性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:57:26