/**
* 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
This code is collecting input as an array with objects embedded inside it... the function 'mostPopularDays' should return a string of the name of the day with the most traffic or an array with the names of the days with the most traffic.
4 Réponses :
Vous pouvez utiliser la méthode code> Réduire code> pour faire ceci:
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);
}
S'il vous plaît vérifier mon poste édité
@Stanleyluke: Je viens de remarquer que vous avez déplacé les objectifs de but, vous ne voulez que le nom de la journée avec le plus de trafic. Changé la fonction pour le refléter.
Merci beaucoup, s'il vous plaît et si nous avons plus d'un jour avec le même trafic, pouvez-vous partager un code pour renvoyer les jours en tant que tableau. par exemple [jeudi, vendredi]
J'allais vous demander ce que vous voulez arriver dans ce cas. Je ferai cela pour vous, mais sachez simplement que changer constamment les objectifs d'une question n'est pas bon, donc l'étiquette.
Merci, attendant
@Stanleyluke Il pourrait être utile de donner à cela une lecture: Medium.com/jsguru/...
@Stanleyluke Je viens de mettre à jour la réponse car il y avait une erreur dedans - l'accumulateur de la fonction code> code> doit être 0 pour commencer.
@Stanleyluke Vous avez recommencé la question! Voulez-vous vraiment sortir une chaîne quand il n'y a qu'un jour et un tableau quand il y a plus d'un jour? Cela va juste rendre votre vie plus difficile. Travailler avec un tableau, quel que soit le nombre de jours y compris, simplifiera les choses pour vous. Sinon, vous devrez faire une vérification supplémentaire de type lorsque vous travaillez avec la valeur renvoyée à partir de MostPopularays () code>.
C'est un peu long mais Vous pouvez d'abord trouver une valeur maximale, puis trouver les éléments pertinents dans la correspondance de la liste
p> var wdArr = [ {name: "mon", traffic: 123}, {name: "tue", traffic: 120}, {name: "wed", traffic: 124}, {name: "thurs", traffic: 455}]
resInt = Math.max.apply(Math, wdArr.map(function(o) { return o.traffic; }))
resObj = wdArr.filter (function(el){
return el.traffic == resInt
});
console.log(resObj)
À quoi sert la jQuery? Votre code n'a aucune dépendance sur JQuery.
Correction des remerciements pour notification
Vous pouvez comparer la valeur de la circulation dans le tableau code> RedCue code> et obtenir la hauteur value p> trafic code> objet. let data = [{name: "mon", traffic: 123}, {name: "tue", traffic: 120}, {name: "wed", traffic: 124}, {name: "thurs", traffic: 455}],
result = data.reduce((r,o) => r.traffic < o.traffic ? o : r);
console.log(result);
Vous pouvez utiliser le Réduire () Méthode .
La méthode réduite () exécute une fonction de réducteur (que vous fournissez) sur chaque membre de la matrice entraînant une seule valeur de sortie. P> blockQuote>
p>
var weekdays = [ {name: "mon", traffic: 123}, {name: "tue", traffic: 120}, {name: "wed", traffic: 124}, {name: "thu", traffic: 455}, {name: "fri", traffic: 455}, ] var maxTrafficWeekday = weekdays.reduce(function (acc, val) { return val.traffic >= acc.traffic ? val : acc // -----------------^ }) console.log(maxTrafficWeekday)
Quelle est l'attente de production?
Quelle est l'entrée? Veuillez prendre des données valides et le formater correctement.
Le jour de la semaine semble être un objet d'une classe, pas un simple objet. Vous pourriez avoir besoin de connaître les méthodes d'accès de cette classe
S'il vous plaît, j'ai modifié la question, peut-être que vous comprendriez mieux maintenant.
Veuillez ajouter la partie de
// implémenter cette fonction! code>.@Ninascholz C'est ce qu'il demande.