如何通过值获取 JavaScript 对象中的键?
2022-08-29 22:40:50
我有一个非常简单的JavaScript对象,我用它作为一个关联数组。有没有一个简单的函数允许我获取值的键,或者我必须迭代对象并手动找到它?
我有一个非常简单的JavaScript对象,我用它作为一个关联数组。有没有一个简单的函数允许我获取值的键,或者我必须迭代对象并手动找到它?
function getKeyByValue(object, value) {
return Object.keys(object).find(key => object[key] === value);
}
ES6,无原型突变或外部库。
例
function getKeyByValue(object, value) {
return Object.keys(object).find(key => object[key] === value);
}
const map = {"first" : "1", "second" : "2"};
console.log(getKeyByValue(map,"2"));
没有可用的标准方法。您需要迭代,并且可以创建一个简单的帮助程序:
Object.prototype.getKeyByValue = function( value ) {
for( var prop in this ) {
if( this.hasOwnProperty( prop ) ) {
if( this[ prop ] === value )
return prop;
}
}
}
var test = {
key1: 42,
key2: 'foo'
};
test.getKeyByValue( 42 ); // returns 'key1'
需要注意的一点是:即使上述方法有效,扩展任何主机或本机对象的通常是一个坏主意。我在这里这样做是因为它非常适合这个问题。无论如何,您应该在 外部使用此函数,并将对象传递到其中。.prototype
.prototype