为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ibeautiful 2019-06-20 17:07:27
如何通过JavaScript对象的值获取键?我有一个非常简单的JavaScript对象,用作关联数组。是否有一个简单的函数允许我获得一个值的键,还是我必须迭代该对象并手动找到它?
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

带着Underscore.js图书馆:

var hash = {
 foo: 1,
 bar: 2};(_.invert(hash))[1]; // => 'foo'


查看完整回答
反对 回复 2019-06-20
?
慕的地10843

TA贡献1785条经验 获得超8个赞

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"));


查看完整回答
反对 回复 2019-06-20
?
繁花如伊

TA贡献2012条经验 获得超12个赞

没有可用的标准方法。您需要迭代,您可以创建一个简单的助手:

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然后把物体传递给它。


查看完整回答
反对 回复 2019-06-20
  • 3 回答
  • 0 关注
  • 1588 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信