Javascript 从给定数组中获取属性的最大值
此代码以数组形式收集输入,数组中嵌入了对象。。。函数“mostPopularDays”应返回流量最大的一天的名称字符串,或返回流量最大的一天的名称数组。您可以使用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; }
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);
}