【发布时间】:2018-12-26 12:57:26
【问题描述】:
我知道这里有类似的问题,但使用这些方法只返回一个最大值。我需要确定数组的哪些对象在给定属性中具有该最大值,并在给定属性中具有最大值的那些对象中返回某个 (other) 属性的值。
我有一个名为 week 的对象数组,它有两个属性 "name" 和 "traffic":
[
{ name: "Saturday", traffic: 12 },
{ name: "Sunday", traffic: 12 },
{ name: "Monday", traffic: 13 },
{ name: "Tuesday", traffic: 9 },
{ name: "Wednesday", traffic: 10 },
{ name: "Thursday", traffic: 8 },
{ name: "Friday", traffic: 13 },
]
在这种情况下,Monday 和 Friday 具有属性 “Traffic”的最大值 这是 13 我需要一种方法来返回一个 string 包含最高的一天的名称strong>"Traffic" value 如果只有一天,以及包含名称 (作为字符串) 的数组具有最高“流量” 价值的天,如果有超过一天的最高“流量” value,因为在这种情况下会返回一个包含 Monday 和 Friday 的数组。
我试过这个:
function getMaxTr() {
return week.reduce((max, p) => p.traffic > max ?
p.traffic : max, week[0].traffic);
}
但是这样我只得到了属性 “traffic” 的一个最大值,即 13。
还有这个:
let max = week [week.length - 1];
通过最后一个,我得到一个具有最大流量值的对象,如下所示:
Object { name: "Friday", traffic: 13 }
【问题讨论】:
-
你试过什么?请发布您的代码。
标签: javascript arrays object