ホームページ >ウェブフロントエンド >jsチュートリアル >配列内で最も繰り返される要素を見つける方法
これが私がブログのキャリアを始めた方法です
-------------------------------------- -- ------------自分自身に警告してください
タイトル: 配列内で最も多くの繰り返しがある要素
これ以上の苦労はせずに、コードに直接進みましょう----------
1 つ目のメソッド:
function getMost(arr){ var hash = {}; var m = 0; var trueEl; var el; for(var i = 0,len = arr.length; i < len; i++ ) { el = arr[i]; hash[el] === undefined ? hash[el] = 1 : (hash[el] ++); if(hash[el] >= m){ m = hash[el]; trueEl = el; } } return trueEl; };
2 つ目のメソッド:
function getMost(arr) { if (!arr.length) return if (arr.length === 1) return 1 var res = {} // 遍历数组 for (var i=0,l=arr.length;i<l;i++) { if (!res[arr[i]]) { res[arr[i]] = 1; } else { res[arr[i]]++; } } // 遍历 res var keys = Object.keys(res); console.log(keys); var maxNum = 0, maxEle; for (var i=0,l = keys.length;i<l;i++) { if (res[keys[i]] > maxNum) { maxNum = res[keys[i]]; maxEle = keys[i]; } return maxEle; }
3 つ目のメソッド:
Array.prototype.getMost = function(){ var obj = this.reduce((p,n) =>(p[n]++ ||(p[n] = 1),(p.max=p.max>=p[n]?p.max:p[n]), (p.key=p.max>p[n]?p.key:n), p), {}); return 'key: '+ obj.key+ ' len: '+obj.max;} var arr = [1,2,3,4,2,1,4,2,3,5]; arr.getMost();
3 つ目のメソッドにはバグがあり、最も繰り返しの多い要素が複数ある場合、最後の要素が返されます。
以上が配列内で最も繰り返される要素を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。