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

如何按水果名称分组获取对象数组中quantity的最小值

按水果名称分组获取最小数量的解决方案

直接用reduce一步实现

你可以通过reduce方法直接完成分组和最小值计算,这是最高效的方式,不需要额外的map操作:

const minQuantities = fruits.reduce((acc, curr) => {
  // 若当前水果未记录,或当前数量比已存最小值更小,则更新
  if (!acc[curr.fruitname] || curr.quantity < acc[curr.fruitname]) {
    acc[curr.fruitname] = curr.quantity;
  }
  return acc;
}, {});

console.log(minQuantities);
// 输出结果:{ apple: 11, strawberries: 7, pear: 33, plum: 15, grapes: 43 }

代码逻辑说明

  • 初始化累加器acc为空对象,用来存储每个水果对应的最小数量
  • 遍历数组中的每个水果对象curr:
    • 检查当前水果名称是否未在acc中,或者当前的quantity比acc中已存储的值更小
    • 满足条件时,将acc中该水果对应的数量更新为当前的quantity
  • 遍历结束后,acc就是你需要的分组最小数量结果

备选实现:先分组再计算最小值

如果习惯先把同组数据收集起来再处理,也可以先分组,再对每组数量取最小值:

// 第一步:按水果名称分组,收集所有数量
const groupedQuantities = fruits.reduce((acc, curr) => {
  acc[curr.fruitname] = [...(acc[curr.fruitname] || []), curr.quantity];
  return acc;
}, {});

// 第二步:对每组数量取最小值,转换为目标格式
const minQuantities = Object.fromEntries(
  Object.entries(groupedQuantities).map(([fruit, quantities]) => [fruit, Math.min(...quantities)])
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:55:18