从键/值对象中的angular / js中的值获取相应的键

时间:2015-08-12 14:06:37

标签: javascript angularjs

是否有任何简单的方法从键/值对象获取密钥,如果我知道值?

例如,我知道价值是"红色"在这些数据中:

1: 'red',
2: 'blue',
3: 'yellow'

我希望能够跟踪数字1。 我正在寻找没有环绕物体的解决方案,更确切地说,我想知道是否有像这样的反之亦然的解决方案:

var nameOfColor = colors[1];

或者没有这样的方式?非常感谢你们!

1 个答案:

答案 0 :(得分:0)

您可以使用 Object.keys()方法和 .filter()方法执行以下操作。

  var obj = {
    1: 'red',
    2: 'blue'
  }

  Object.prototype.getKey = function(value) {
    var self = this;
    //Retrieve all key of current object
    return Object.keys(self).filter(function(elm){
      //Then, if current object get current key
      return self.hasOwnProperty(elm)
      //true if value are equals
      ? self[elm] === value
      //Otherwise false
      : false;
    });
  }

  console.log(obj.getKey('red'));