Javascript 在JS中查找对象上特定值的键
我有一个这样的对象,它是通过使用lodashJavascript 在JS中查找对象上特定值的键,javascript,arrays,object,lodash,Javascript,Arrays,Object,Lodash,我有一个这样的对象,它是通过使用lodash..zipObject()函数生成的。我有两个数组,一个位置,一个数字 var locs = {'Aberdeen': 304, 'Aberystwith': 109, 'Belfast': 219, 'Birmingham': 24, 'Brighton': 147, …} 我需要根据输入值返回键。例如,函数(304)将返回'Aberdeen' 我试过\uu.findkey(locs,304)但这只是返回未定义的。我尝试过的任何其他尝试总是返回未定
..zipObject()
函数生成的。我有两个数组,一个位置,一个数字
var locs = {'Aberdeen': 304, 'Aberystwith': 109, 'Belfast': 219, 'Birmingham': 24, 'Brighton': 147, …}
我需要根据输入值返回键。例如,函数(304)
将返回'Aberdeen'
我试过\uu.findkey(locs,304)代码>但这只是返回未定义的。我尝试过的任何其他尝试总是返回未定义或-1。不太确定从这里走到哪里。使用纯Javascript函数获取所有键,然后与函数中的元素进行比较
const obj={'Aberdeen':304,'Aberystwith':109,'Belfast':219,'Birmingham':24,'Brighton':147};
const key=Object.keys(obj.find)(key=>obj[key]==304);
控制台日志(键)代码>要查找键,请使用谓词函数:
var locs={'Aberdeen':304,'Aberystwith':109,'Belfast':219,'Birmingham':24,'Brighton':147};
变量键=uu.findKey(locs,函数(v){
返回v==304;
});
控制台日志(键)代码>
您可以使用自定义功能查找密钥:
function findKey(dataObj, value){
for(var key in dataObj){
if(dataObj.hasOwnProperty(key) && dataObj[key] == value){
return key;
}
}
return false;
}
var locs = {'Aberdeen': 304, 'Aberystwith': 109, 'Belfast': 219, 'Birmingham': 24, 'Brighton': 147, …}
console.log(findKey(locs, 304));
您只需使用Object.keys()获取所有键,然后使用.find()函数从该数组中取出键,然后将其巧妙地包装到一个函数中,使其模块化
var locs = {'Aberdeen': 304, 'Aberystwith': 109, 'Belfast': 219, 'Birmingham': 24, 'Brighton': 147, …}
Object.prototype.getKey = function(value) {
var object = this;
return Object.keys(object).find(key => object[key] === value);
};
alert(locs.getKey(304));
你可以这样做:
var locs={'Aberdeen':304,'Aberystwith':109,'Belfast':219,'Birmingham':24,'Brighton':147}
常量getKeyByValue=(对象,值)=>
Object.keys(obj.find)(key=>obj[key]==value);
日志(getKeyByValue(locs,304))代码>