Javascript 我们如何从对象中获取差异最大的值并打印出值的键

Javascript 我们如何从对象中获取差异最大的值并打印出值的键,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我有一个这样的物体 { '1': 2, '2': 2, '4': 2, '5': 2, '-2': 2, '-1': 1 } 是的,我们知道,最不同的值是“1” 因此,函数将从对象'-1'打印出键 哪个函数可以找到密钥 这需要几个小时,但我仍然没有找到它,因为该对象是一个字符串 感谢您提供的任何帮助,您可能需要在对象上迭代两次,以首先找到最不频繁的对象,然后获取结果值的键。也许有一种更简单的方法我不知道 让obj={'1':2, '2': 2, '4': 2

我有一个这样的物体

{ '1': 2, 
  '2': 2, 
  '4': 2, 
  '5': 2, 
  '-2': 2, 
  '-1': 1 
}
是的,我们知道,最不同的值是“1”

因此,函数将从对象'-1'打印出键

哪个函数可以找到密钥

这需要几个小时,但我仍然没有找到它,因为该对象是一个字符串


感谢您提供的任何帮助,您可能需要在对象上迭代两次,以首先找到最不频繁的对象,然后获取结果值的键。也许有一种更简单的方法我不知道

让obj={'1':2,
'2': 2, 
'4': 2, 
'5': 2, 
'-2': 2, 
'-1': 1 
}
函数leastFrequentObjKey(obj){
var dict={};
Object.values(obj.forEach)(val=>{
如果(!dict[val])dict[val]=0;
dict[val]++;
});
var value=Math.min.apply(null,Object.values(dict));
返回Object.keys(obj.find)(key=>obj[key]==value);
}

日志(leastFrequentObjKey(obj))
对象使用
reduce
方法。键应简化

设obj={1:2,2:2,4:2,5:2,“-2:2,”-1:1};
const res=Object.keys(obj).reduce((最小,关键)=>
obj[min]>obj[key]?key:min
);

console.log(res)
您所说的最不同的
是什么意思?你的意思是存在的数量最少,就像你的例子中有5个2和1个1一样吗?我已经编辑了格式,我的意思是,对象-1的值为1,它是最不同的,对吗?。问题是什么,如何得到-1thanks@Miro,它有助于澄清问题,你也能帮助解决问题吗?我想这应该能回答你的问题:你真的很善良,Miro,哦,我明白了,我们可以在对象内部迭代两次。Thanks@theDreamer911选中“仅编辑-单个”功能,该功能将查找最小值。OP想要的最少frequent@Miro,它得到的是最不频繁(最小值)的对应键,在本例中是“-1”,对吗?它恰好在本例中起作用。但是,如果
1:-5
2:-5
将返回1。他想要最少的频率,而不仅仅是最低的频率。