Maison > interface Web > js tutoriel > Explication détaillée de la méthode JS pour obtenir les éléments les plus fréquents dans un tableau

Explication détaillée de la méthode JS pour obtenir les éléments les plus fréquents dans un tableau

小云云
Libérer: 2018-01-20 10:15:36
original
5317 Les gens l'ont consulté

Cet article présente principalement la méthode JS pour obtenir les éléments les plus fréquents et les deuxièmes éléments les plus fréquents dans un tableau, impliquant le parcours, le tri, le jugement, l'interrogation et d'autres compétences opérationnelles connexes de JavaScript pour les tableaux. Les amis qui en ont besoin peuvent s'y référer. . J'espère que cela peut aider tout le monde.

Les éléments avec le plus grand nombre d'occurrences et le deuxième plus grand nombre d'occurrences dans le tableau d'entiers

Utilisez le tableau de hachage

function f(arr){
  var i;
  var length=arr.length;
  var hash=[];//使用哈希数组
  for(i=0;i<length;i++){
    if(!hash[arr[i]])hash[arr[i]]=1;//没有初始化的数组元素为undefined,undefined++为NaN
    else hash[arr[i]]++;
  }
  var max=0;//最多的次数
  var maxV;//出现最多的元素
  var second=0;//第二多的次数
  var secondV;//出现第二多的元素
  hash.forEach(function(item,index){//forEach函数会跳过空元素
    if(item>max){
      second=max;
      secondV=maxV;
      max=item;
      maxV=index;//用索引来保存原数组的值
    }else if(item>second){
      second=item;
      secondV=index;
    }
  });
  return {max,maxV,second,secondV};
}
var arr=[2,2,2,2,3,4,5,4,3,1,4,4,100,100];
var {max,maxV,second,secondV}=f(arr);//ES的元素解构赋值
console.log(max,maxV,second,secondV);
Copier après la connexion

pour exécuter le résultat :

Les éléments avec le plus grand nombre et le deuxième plus grand nombre d'occurrences dans le tableau

Utilisez des objets pour enregistrer les valeurs et les heures

function f(arr){
  var temp=[];//对象数组
  var i;
  temp[0]={value:arr[0],index:1};//保存数组元素出现的次数和值
  arr.sort();
  for(i=1;i<arr.length;i++){
    if(arr[i]==arr[i-1]){
      temp[temp.length-1].index++;
    }else{//不相同则新增一个对象元素
      temp.push({index:1,value:arr[i]});
    }
  }
  temp.sort(function(a,b){//按照出现次数从大到小排列
    return a.index<b.index;
  })
  var max=temp[0].index;
  var maxV=temp[0].value;
  var second=temp[1].index;
  var secondV=temp[1].value;
  return {max,maxV,second,secondV};
}
var arr=[2,2,3,4,5,100,100,,3,1,4,4,100,100];
var {max,maxV,second,secondV}=f(arr);
console.log(max,maxV,second,secondV);
Copier après la connexion

Exécuter les résultats :

Cette méthode peut être utilisée non seulement pour les statistiques de tableaux d'entiers, mais également pour les tableaux de caractères

Le code ci-dessus est écrit sous forme ES6

function f(arr){
  class num{
    constructor(value){
      this.value=value;
      this.index=1;
    }
    add(){
      this.index++;
    }
  }
  arr.sort();
  let temp=[];
  temp[0]=new num(arr[0]);
  for(let i=1;i<arr.length;i++){
    if(arr[i]==arr[i-1]){
      temp[temp.length-1].add();
    }else{
      temp.push(new num(arr[i]));
    }
  }
  temp.sort(function(a,b){
    return a.index<b.index;
  })
  let max=temp[0].index;
  let maxV=temp[0].value;
  let second=temp[1].index;
  let secondV=temp[1].value;
  return {max,maxV,second,secondV};
}
var arr=['a','b','a','b','a','c','d','d','d','d'];
var {max,maxV,second,secondV}=f(arr);
console.log(max,maxV,second,secondV);
Copier après la connexion

Résultats en cours d'exécution :

Recommandations associées :

js obtient tous les éléments de tableau aléatoires non répétitifs dans un tableau [original]_javascript skills

Méthode JS pour obtenir le dernier élément d'un tableau_javascript skills

Méthode JS pour obtenir la valeur maximale, la valeur minimale et la longueur d'un tableau_javascript compétences

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

É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