我有一个非常简单的 JavaScript 对象,我将其用作关联数组。是否有一个简单的函数允许我获取值的键,或者我必须迭代对象并手动找到它?
原文由 arik 发布,翻译遵循 CC BY-SA 3.0 许可协议
我有一个非常简单的 JavaScript 对象,我将其用作关联数组。是否有一个简单的函数允许我获取值的键,或者我必须迭代对象并手动找到它?
原文由 arik 发布,翻译遵循 CC BY-SA 3.0 许可协议
没有可用的标准方法。您需要迭代,您可以创建一个简单的帮助程序:
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
之外使用此函数,并将对象传递给它。
原文由 jAndy 发布,翻译遵循 CC BY-SA 3.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
ES6,没有原型突变或外部库。
例子,