Javascript 从给定数组中获取属性的最大值

Javascript 从给定数组中获取属性的最大值,javascript,arrays,object,Javascript,Arrays,Object,此代码以数组形式收集输入,数组中嵌入了对象。。。函数“mostPopularDays”应返回流量最大的一天的名称字符串,或返回流量最大的一天的名称数组。您可以使用reduce数组方法执行此操作: /** * A prototype to create Weekday objects */ function Weekday (name, traffic) { this.name = name; this.traffic = traffic; }

此代码以数组形式收集输入,数组中嵌入了对象。。。函数“mostPopularDays”应返回流量最大的一天的名称字符串,或返回流量最大的一天的名称数组。

您可以使用
reduce
数组方法执行此操作:

/**
 * A prototype to create Weekday objects
 */


  function Weekday (name, traffic) {
        this.name = name;
        this.traffic = traffic;
    }
//function to return the day that has the most traffic.
function mostPopularDays(week) {
    // IMPLEMENT THIS FUNCTION!

}
//this is my input
var a = new Weekday('mon',123); var b = new Weekday('tues', 134) ; var c = new Weekday('wed', 233);
empty_me = []; 
empty_me.push(a ,b ,c);
mostPopularDays(empty_me);
// it should return the day with most traffic
//e.g wed
这将返回一个数组,其中包含流量最高的日期的所有名称的字符串

编辑:由于问题已更改,它还使用数组
map
filter
方法 首先,您可以找到最大值,然后在列表匹配中找到相关项

var-wdArr=[{name:“mon”,流量:123},{name:“tue”,流量:120},{name:“wed”,流量:124},{name:“thurs”,流量:455}]
resInt=Math.max.apply(Math,wdArr.map(函数(o){return o.traffic;}))
resObj=wdArr.filter(函数(el){
return el.traffic==resInt
});

console.log(resObj)
您可以比较
数组中的流量值#redcue
并获得高度值
流量
对象

let data=[{name:“mon”,流量:123},{name:“tue”,流量:120},{name:“wed”,流量:124},{name:“thurs”,流量:455}],
结果=数据减少((r,o)=>r.traffic您可以使用

reduce()方法对数组的每个成员执行一个reducer函数(由您提供),从而产生一个输出值

var工作日=[
{name:“mon”,流量:123},
{姓名:“星期二”,交通量:120},
{姓名:“wed”,流量:124},
{名称:“thu”,流量:455},
{姓名:“fri”,流量:455},
]
var maxTrafficWeekday=工作日.reduce(函数(acc,val){
返回val.traffic>acc.traffic?val:acc
})

console.log(maxTrafficWeekday)
预期的输出是什么?输入是什么?请获取有效数据并正确格式化。工作日似乎是类的对象,而不是简单的对象。你可能需要知道这个类的访问方法。请,我已经编辑了这个问题,也许你现在会理解得更好。请添加
//的部分来实现这个函数。jQuery用于什么?您的代码不依赖于jQuery。修复了此问题。感谢您的通知。请查看我编辑的post@StanleyLuke:刚注意到你移动了球门柱,你只想知道当天流量最大的那一天的名字。更改了函数以反映这一点。非常感谢,如果我们有多天的相同流量,请如何处理?能否共享一个代码以数组形式返回天数。我想问你在这种情况下你想发生什么。我会帮你这么做的,但要知道,不断地改变一个问题的门柱是不礼貌的。谢谢,等等
function mostPopularDays(week) {
    let mostTrafficInADay = week.reduce((acc, val) => {
        acc = ( val.traffic > acc ) ? val.traffic : acc;
        return acc;
    }, 0);
    return week.filter(day => day.traffic === mostTrafficInADay).map(day => day.name);
}