Étant donné un tableau, transmettez-le dans une fonction highRank(arr) et renvoyez l'élément avec la fréquence la plus élevée dans le tableau.
S'il existe plusieurs éléments avec la fréquence d'occurrence la plus élevée, renvoie celui avec la plus grande valeur.
Par exemple :
arr = [12, 10, 8, 12, 7, 6, 4, 10, 12]; highestRank(arr) //=> returns 12 arr = [12, 10, 8, 12, 7, 6, 4, 10, 12, 10]; highestRank(arr) //=> returns 12 arr = [12, 10, 8, 8, 3, 3, 3, 3, 2, 4, 10, 12, 10]; highestRank(arr) //=> returns 3
Pour ce type de calcul de fréquence, il est préférable de faire des statistiques pour voir à quelle fréquence chaque nombre apparaît.
Ensuite, filtrez celui avec la fréquence la plus élevée ou un groupe de nombres.
Enfin, trouvez le plus grand de cet ensemble de nombres et renvoyez-le.
Personnellement, je préfère utiliser des objets de hachage pour résoudre le problème, ce qui est efficace et facile à énumérer.
Le tri peut également être résolu, mais l'efficacité sera certainement moindre
function highestRank(arr){ var hash = {}; var highest = 0; var highestArray = []; for(var i=0;i<arr.length;i++){ var cur = arr[i]; if(hash[cur]){ hash[cur] = 1 + hash[cur]; } else{ hash[cur] = 1; } if(hash[cur] > highest){ highest = hash[cur]; } } for(var j in hash){ if(hash.hasOwnProperty(j)){ if(hash[j] === highest){ highestArray.push(j); } } } return Math.max.apply(null,highestArray); }
Ce qui précède est une question JavaScript intéressante : trouvez le contenu de l'élément avec la plus grande fréquence d'occurrence dans un array. Pour plus de contenu connexe, veuillez prêter attention à PHP Chinese Net (m.sbmmt.com) !