Heim > Web-Frontend > js-Tutorial > Detaillierte Erläuterung der JS-Methode zum Abrufen der häufigsten Elemente in einem Array

Detaillierte Erläuterung der JS-Methode zum Abrufen der häufigsten Elemente in einem Array

小云云
Freigeben: 2018-01-20 10:15:36
Original
5320 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Methode von JS vorgestellt, um die häufigsten und zweithäufigsten Elemente in einem Array zu erhalten. Dazu gehören JavaScripts Fähigkeiten zum Durchlaufen, Sortieren, Beurteilen, Abfragen und andere verwandte Operationen für Arrays. Freunde, die es benötigen, können darauf verweisen . Ich hoffe, es kann jedem helfen.

Die Elemente mit den meisten und zweithäufigsten Vorkommen im Integer-Array

Verwenden Sie das Hash-Array

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);
Nach dem Login kopieren

, um das Ergebnis auszuführen:

Die Elemente mit den meisten und zweithäufigsten Vorkommen im Array

Verwenden Sie Objekte, um Werte und Zeiten zu speichern

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);
Nach dem Login kopieren

Ergebnisse ausführen:

Diese Methode kann nicht nur für Statistiken von Ganzzahl-Arrays verwendet werden, sondern auch für Zeichen-Arrays

Der obige Code ist in ES6-Form geschrieben

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);
Nach dem Login kopieren

Laufende Ergebnisse:

Verwandte Empfehlungen:

js ruft alle sich nicht wiederholenden zufälligen Array-Elemente in einem Array ab. [Original]_Javascript-Kenntnisse

JS-Methode zum Abrufen des letzten Elements eines array_javascript-Fähigkeiten

JS-Methode zum Abrufen des Maximalwerts, Minimalwerts und der Länge eines array_javascript Fähigkeiten

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der JS-Methode zum Abrufen der häufigsten Elemente in einem Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage