在对象数组中获得最低价格
Posted
技术标签:
【中文标题】在对象数组中获得最低价格【英文标题】:Get Lowest Price in Array of Objects 【发布时间】:2018-10-12 23:19:49 【问题描述】:我有一个名为cars
的对象数组,其中包含搜索结果列表。在每个列表中都有一个名为data-price
的属性。
数组对象示例
<li xmlns="http://www.w3.org/1999/xhtml" id="listing-ECAR-R-EY-MCOO001-EY-MCOO001" data-price="94.03"></li>
我想知道如何获得最低的数据价格值?以及来自汽车数组的平均数据价格值?
代码:
// 这会打印出每个价格值
cars.forEach(function(element)
console.log(element[0].getAttribute("data-price"));
);
【问题讨论】:
请发布您的数组,而不是 jquery 对象。 你的例子没用 你们知道如何打印有关阵列的更多信息吗?见:prntscr.com/jcw41s console.log(汽车) 请参阅:prntscr.com/jcw5fc ...我不确定为您复制/粘贴整个数组的最佳方法:/ 【参考方案1】:您可以将map
方法与Math.min
和reduce
函数结合使用。
我使用reduce
方法来找出元素的sum
,并通过将总和除以cars
数组中的元素数得到average
。
reduce() 方法对累加器应用一个函数,每个 数组中的元素(从左到右)将其减少为单个 价值。
let prices = cars.map(function(element)
return element[0].getAttribute("data-price");
);
let lowestPrice = Math.min(...prices);
let avg = prices.reduce(function(acc, val) return acc + val; , 0)/prices.length
spread syntax
的替代品。
let lowestPrice = Math.min.apply(null, prices);
【讨论】:
谢谢米海! ... 语法是什么?旧浏览器是否支持此功能? 定义“旧浏览器” 嗯,由于某种原因,平均值返回 NaNundefined + <a number>
会这样做。
@Michael,我用传播语法的替代方法更新了我的答案。以上是关于在对象数组中获得最低价格的主要内容,如果未能解决你的问题,请参考以下文章