You need to enable JavaScript to run this app. JavaScript 如何从对象数组中获取最高商品价格
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript 如何从对象数组中获取最高商品价格

提取商品数组最高价格的实现方案

适配对象数组的Math.max()用法

Math.max()本身只接收独立的数字参数,处理对象数组时需要先把所有商品的price值提取成纯数字列表,再传入计算:

const maxPrice = Math.max(...items.map(item => item.price));

常见踩坑:如果直接把提取到的价格数组整体传给Math.max(),会返回NaN。必须通过扩展运算符...把数组拆成独立参数,或是用apply方法传递数组参数,等价写法如下:

const maxPrice = Math.max.apply(null, items.map(item => item.price));

以上写法在示例数组中会返回最高价格299.99。

reduce()遍历累计实现

利用reduce()逐元素遍历、保留累计值的特性,不需要提前拆分全量数组:

const maxPrice = items.reduce((prevMax, currentItem) => {
  // 对比当前累计最大值与当前商品价格,保留更大值作为下一轮的累计值
  return Math.max(prevMax, currentItem.price);
}, 0);

注意:常规商品价格为非负值,初始值设为0无问题;若存在负价格的特殊业务场景,需将初始值替换为数组第一个元素的价格,避免初始值覆盖真实最大值。

原生for循环实现

不依赖数组高阶方法的基础实现,逻辑更直观:

let maxPrice = 0;
for (let i = 0; i < items.length; i++) {
  if (items[i].price > maxPrice) {
    maxPrice = items[i].price;
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.09 02:06:03