2017-05-11 13 views
0

私はこのコードを見つけました...このような質問には貢献していませんが、誰か教えてください。我々は、配列の最初の要素から開始し、その後、ループのための別のものを使用して私たちがやっていることは

で、あなたが提供するコードではそんなに配列内の反復された値の大部分を見つけるアルゴリズム

var arr1 = [3, 'a', 'a', 'a', 2, 3, 'a', 3, 'a', 2, 4, 9, 3]; 
var mf = 1; 
var m = 0; 
var item; 
for (var i=0; i<arr1.length; i++) 
{ 
    for (var j=i; j<arr1.length; j++) 
    { 
      if (arr1[i] == arr1[j]) 
      m++; 
      if (mf<m) 
      { 
       mf=m; 
       item = arr1[i]; 
      } 
    } 
    m=0; 
} 
alert(item+" (" +mf +" times) ") ; 

答えて

1

に感謝し、我々はすべてを現在の値を比較しますその値の後ろにある配列の値。それらが同じ場合は、カウンタmを1だけ増加させます。
したがって、の最後のループの最後に、現在の値の頻度があります。次に、最大周波数であるかどうかを確認します。の場合は、変数mfに格納します。

最後に、配列内で最も多く発生した要素があります。

+0

こんにちは..助けてくれてありがとう! –

+0

しかし、私はまだ理解していません。 \t if(mf

+0

mfは今まで見つかった最大頻度で、mは現在の要素の周波数so(mf

関連する問題