Maison > interface Web > js tutoriel > le corps du texte

Question JavaScript intéressante : recherchez l'élément avec la fréquence d'occurrence maximale dans un tableau

黄舟
Libérer: 2017-02-04 15:45:05
original
1505 Les gens l'ont consulté

É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
Copier après la connexion

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);  
}
Copier après la connexion

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 (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal