如何通过JavaScript对象的值获取键?

如何通过JavaScript对象的值获取键?

我有一个非常简单的JavaScript对象,用作关联数组。是否有一个简单的函数允许我获得一个值的键,还是我必须迭代该对象并手动找到它?




ibeautiful
浏览 1558回答 3
3回答

慕田峪9158850

带着Underscore.js图书馆:var hash = {  foo: 1,  bar: 2};(_.invert(hash))[1]; // => 'foo'

慕的地10843

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然后把物体传递给它。
打开App,查看更多内容
随时随地看视频慕课网APP