在对象数组中获得最低价格

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.minreduce 函数结合使用。

我使用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);

【讨论】:

谢谢米海! ... 语法是什么?旧浏览器是否支持此功能? 定义“旧浏览器” 嗯,由于某种原因,平均值返回 NaN undefined + &lt;a number&gt; 会这样做。 @Michael,我用传播语法的替代方法更新了我的答案。

以上是关于在对象数组中获得最低价格的主要内容,如果未能解决你的问题,请参考以下文章

JAVA 数组中的元素是对象,如何给对象排序

html Miva - 以最低价格对多维数组排序运输方式

如何减少字符串价格的对象数组

查找对象数组的最小值

为啥我的数组未显示为已过滤?

我不会在 laravel 中的数组或对象中获得价值