Javascript 如何迭代和比较JS对象中的值?
结果应该是一个2元素数组,其中2个数字是最常见的;我可以返回一个数字被发现次数最多的前2名(我的//评论)。但是我不知道如何从出现次数最多的pairs对象返回正确的键。请帮忙Javascript 如何迭代和比较JS对象中的值?,javascript,arrays,object,counter,frequency,Javascript,Arrays,Object,Counter,Frequency,结果应该是一个2元素数组,其中2个数字是最常见的;我可以返回一个数字被发现次数最多的前2名(我的//评论)。但是我不知道如何从出现次数最多的pairs对象返回正确的键。请帮忙 /*MajorityElementTop2 *编写一个函数,该函数接受一个整数数组并返回一个新的两项数组 *输入中出现频率最高的两个整数。 *多数元素top2([3,3,1,2,1,1,4,4,4]);//[4,1] */ 函数多数元素top2(数组){ 让结果=[]; 让配对={}; for(设i=0;i0;i--){
/*MajorityElementTop2
*编写一个函数,该函数接受一个整数数组并返回一个新的两项数组
*输入中出现频率最高的两个整数。
*多数元素top2([3,3,1,2,1,1,4,4,4]);//[4,1]
*/
函数多数元素top2(数组){
让结果=[];
让配对={};
for(设i=0;i0;i--){
//设num=obj.pop();
//console.log(num);
//结果:推送(num);
// }
//返回结果切片(0,2);
}
log(majorityElementTopTwo([3,3,1,2,1,1,4,4]);//[4,1]
从JavaScript开始,您可以使用Object.keys(obj)获取在对象本身上定义的属性数组(对于obj.hasOwnProperty(key)返回true的属性)
这比使用for-in循环更好(也更可读)
以下浏览器支持它:
火狐(壁虎):4(2.0)
铬:5
Internet Explorer:9
参考:我希望这就是你想要的答案,我在这里所做的就是
[[“1”,3],“2”,1],“3”,2],“4”,4]
[[“4”,4],“1”,3]]
/*MajorityElementTop2
*编写一个函数,该函数接受一个整数数组并返回一个新的两项数组
*输入中出现频率最高的两个整数。
*多数元素top2([3,3,1,2,1,1,4,4,4]);//[4,1]
*/
函数多数元素top2(数组){
让配对={};
for(设i=0;ielements.sort((a,b)=>b[1]-a[1]).slice(0,2)
}
log(majorityElementTopTwo([3,3,1,2,1,1,4,4]);//[4,1]
使用Array.prototype.map()、Array.prototype.filter()和Array.prototype.sort()。
/*MajorityElementTop2
*编写一个函数,该函数接受一个整数数组并返回一个新的两项数组
*输入中出现频率最高的两个整数。
*多数元素top2([3,3,1,2,1,1,4,4,4]);//[4,1]
*/
函数多数元素top2(数组){
常量[第一,第二]=[…新集合(数组)]
.map((num)=>num,array.filter((n)=>n==num.length])
.sort((a,b)=>b[1]-a[1])
.切片(0,2);
返回[第一个[0],第二个[0]];
}
log(majorityElementTopTwo([3,3,1,2,1,1,4,4])代码>
Object.keys(obj).forEach(function(key,index) {
// key: the name of the object key
// index: the ordinal position of the key within the object
});