[英]Getting function to return the 'new' object with the highest value from an array
第一次在這里發布海報,JavaScript 初學者。 我正在嘗試獲取 function 以返回具有更高traffic
值的 object。 我瀏覽了 web 以了解如何返回最大值,所以我現在對 Math.max 了如指掌,但我仍然無法使其按預期工作。 這是我的代碼示例:
function mostBusyDays(week) {
var week = [
new Weekday("Monday", 11),
new Weekday("Tuesday", 14),
new Weekday("Wenesday", 19),
new Weekday("Thursday", 21),
new Weekday("Friday", 24),
new Weekday("Saturday", 29),
new Weekday("Sunday", 6),
];
return week;
}
這就是我正在嘗試實現的 function,這是創建weekday
new
對象的原型:
function Weekday(name, traffic) {
this.name = name;
this.traffic = traffic;
}
在控制台上調用 function 顯示return week
確實會按預期返回一個數組,所以我至少知道代碼是有效的,但是對於我的一生,我只是無法讓它只返回最高的工作日交通。 我會很感激你給我的任何啟示
您可以嘗試使用 Array.reduce function:
function mostBusyDays() { var week = [ new Weekday("Monday", 11), new Weekday("Tuesday", 14), new Weekday("Wenesday", 19), new Weekday("Thursday", 21), new Weekday("Friday", 24), new Weekday("Saturday", 29), new Weekday("Sunday", 6), ]; return week.reduce((a,b)=>a.traffic>b.traffic?a:b); } function Weekday(name, traffic) { this.name = name; this.traffic = traffic; } console.log(mostBusyDays());
請嘗試以下示例
這個想法是按流量降序排列周,然后獲取數組的第一個元素,該元素將是具有最高流量值的元素。
function mostBusyDays(week) { var week = [ new Weekday("Monday", 11), new Weekday("Tuesday", 14), new Weekday("Wenesday", 19), new Weekday("Thursday", 21), new Weekday("Friday", 24), new Weekday("Saturday", 29), new Weekday("Sunday", 6), ]; week.sort((a, b) => b.traffic - a.traffic); return week[0].name; } function Weekday(name, traffic) { this.name = name; this.traffic = traffic; } console.log(mostBusyDays());
看
是數組減少,但如果您需要保留原始項目,請小心使用該項目的副本
const week = [ { name: 'Monday', traffic: 11 }, { name: 'Tuesday', traffic: 14 }, { name: 'Wenesday', traffic: 19 }, { name: 'Thursday', traffic: 21 }, { name: 'Friday', traffic: 24 }, { name: 'Saturday', traffic: 29 }, { name: 'Sunday', traffic: 6 } ] const higher = week.reduce((a,c)=> { if (.a || a.traffic < c.traffic) a={..,c} return a }.null) console.log( JSON.stringify( higher ))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.