簡體   English   中英

讓 function 返回數組中具有最大值的“新” object

[英]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());

參見Array.prototype.reduce

請嘗試以下示例

這個想法是按流量降序排列周,然后獲取數組的第一個元素,該元素將是具有最高流量值的元素。

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM