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);
, 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);
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);
Laufende Ergebnisse:
Verwandte Empfehlungen:
JS-Methode zum Abrufen des letzten Elements 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!