【发布时间】:2021-06-10 03:16:11
【问题描述】:
结果应该是一个 2 元素数组,其中 2 个数字最频繁;我可以返回发现数字的次数最多的前 2 次(我的 //cmets)。但我不知道如何从出现次数最多的对对象中返回正确的键。请帮忙。
/* majorityElementTopTwo
* Write a function which accept an array of integers and returns in a new two item array
* the two integers in the input that appear most frequently.
* majorityElementTopTwo([3,3,1,2,1,1,4,4,4,4]); // [4,1]
*/
function majorityElementTopTwo(array) {
let result = [];
let pairs = {};
for (let i = 0; i < array.length; i++) {
if (array[i] in pairs) {
pairs[array[i]] += 1;
} else {
pairs[array[i]] = 1;
}
}
return pairs;
// obj.sort();
// for(let i = obj.length; i > 0; i--){
// let num = obj.pop();
// console.log(num);
// result.push(num);
// }
// return result.slice(0,2);
}
console.log(majorityElementTopTwo([3, 3, 1, 2, 1, 1, 4, 4, 4, 4])); // [4,1]
【问题讨论】:
标签: javascript arrays object counter frequency