如何使用其值获取密钥名称(在哈希中)?

jam*_*non 7 javascript jquery prototypejs

我知道这有点不正统.

让我说我有这个哈希.

 someHash = {
    'item1' => '5',
    'item2' => '7',
    'item3' => '45',
    'item4' => '09'
}
Run Code Online (Sandbox Code Playgroud)

使用原生js,原型或Jquery - 是否有一种方法可以让我通过获得值得到"关键名称"?

我不想要所有的钥匙,只需要与我的价值相匹配的钥匙.像一张地图反过来排序?

我从db得到一个返回值,我得到一个"值",我必须将该值与前端的一些js hash匹配.

所以应用程序递给我"45"...有没有办法使用js(原型或jquery)然后获得键"item3"?

Jar*_*Par 5

为了获取映射到给定值的,您需要搜索对象属性.例如

function getKeysForValue(obj, value) {
  var all = [];
  for (var name in obj) {
    if (Object.hasOwnProperty(name) && obj[name] === value) {
      all.push(name);
    }
  }
  return all;
}
Run Code Online (Sandbox Code Playgroud)


Igo*_*dov 5

使用underscore.js:

_.invert(someHash)[value]
Run Code Online (Sandbox Code Playgroud)