배열이 주어지면 이를 highRank(arr) 함수에 전달하고 배열에서 빈도가 가장 높은 요소를 반환합니다.
발생 빈도가 가장 높은 요소가 여러 개 있는 경우 가장 큰 값을 갖는 요소를 반환합니다.
예:
arr = [12, 10, 8, 12, 7, 6, 4, 10, 12]; highestRank(arr) //=> returns 12 arr = [12, 10, 8, 12, 7, 6, 4, 10, 12, 10]; highestRank(arr) //=> returns 12 arr = [12, 10, 8, 8, 3, 3, 3, 3, 2, 4, 10, 12, 10]; highestRank(arr) //=> returns 3
이러한 유형의 빈도 찾기의 경우 각 숫자가 얼마나 자주 나타나는지 통계를 만드는 것이 가장 좋습니다.
다음으로 빈도가 가장 높은 항목이나 숫자 그룹을 필터링합니다.
마지막으로 이 숫자 집합에서 가장 큰 숫자를 찾아 반환합니다.
저는 개인적으로 문제를 해결하기 위해 해시 객체를 사용하는 것을 선호하는데, 이는 효율적이고 열거하기 쉽습니다.
정렬도 해결할 수 있지만 효율성은 확실히 떨어집니다.
function highestRank(arr){ var hash = {}; var highest = 0; var highestArray = []; for(var i=0;i<arr.length;i++){ var cur = arr[i]; if(hash[cur]){ hash[cur] = 1 + hash[cur]; } else{ hash[cur] = 1; } if(hash[cur] > highest){ highest = hash[cur]; } } for(var j in hash){ if(hash.hasOwnProperty(j)){ if(hash[j] === highest){ highestArray.push(j); } } } return Math.max.apply(null,highestArray); }
위는 흥미로운 JavaScript 질문입니다. 배열에서 발생 빈도가 가장 높은 요소의 내용을 찾으세요. 더 많은 관련 내용을 보시려면 PHP 중국어 웹사이트(www.php.cn)를 주목해주세요!