本文翻译自:How to get a key in a JavaScript object by its value?

I have a quite simple JavaScript object, which I use as an associative array. 我有一个非常简单的JavaScript对象,用作关联数组。 Is there a simple function allowing me to get the key for a value, or do I have to iterate the object and find it out manually? 是否有一个简单的函数允许我获取值的键,还是必须迭代该对象并手动找到它?


#1楼

参考:https://stackoom.com/question/fZN5/如何通过其值获取JavaScript对象中的键


#2楼

I use this function: 我使用此功能:

Object.prototype.getKey = function(value){for(var key in this){if(this[key] == value){return key;}}return null;
};

Usage: 用法:

// ISO 639: 2-letter codes
var languageCodes = {DA: 'Danish',DE: 'German',DZ: 'Bhutani',EL: 'Greek',EN: 'English',EO: 'Esperanto',ES: 'Spanish'
};var key = languageCodes.getKey('Greek');
console.log(key); // EL

#3楼

http://jsfiddle.net/rTazZ/2/ http://jsfiddle.net/rTazZ/2/

var a = new Array(); a.push({"1": "apple", "2": "banana"}); a.push({"3": "coconut", "4": "mango"});GetIndexByValue(a, "coconut");function GetIndexByValue(arrayName, value) {  var keyName = "";var index = -1;for (var i = 0; i < arrayName.length; i++) { var obj = arrayName[i]; for (var key in obj) {          if (obj[key] == value) { keyName = key; index = i;} } }//console.log(index); return index;}

#4楼

Or, easier yet - create a new object with the keys and values in the order you want then do look up against that object. 或者,更容易-用所需顺序按键和值创建一个新对象,然后针对该对象进行查找。 We have had conflicts using the prototype codes above. 使用上面的原型代码,我们遇到了冲突。 You don't have to use the String function around the key, that is optional. 您不必在键周围使用String函数,这是可选的。

 newLookUpObj = {};$.each(oldLookUpObj,function(key,value){newLookUpObj[value] = String(key);});

#5楼

Since the values are unique, it should be possible to add the values as an additional set of keys. 由于这些值是唯一的,因此应该可以将这些值添加为一组附加键。 This could be done with the following shortcut. 这可以通过以下快捷方式完成。

var foo = {};
foo[foo.apple = "an apple"] = "apple";
foo[foo.pear = "a pear"] = "pear";

This would permit retrieval either via the key or the value: 这将允许通过键或值进行检索:

var key = "apple";
var value = "an apple";console.log(foo[value]); // "apple"
console.log(foo[key]); // "an apple"

This does assume that there are no common elements between the keys and values. 这确实假定键和值之间没有公共元素。


#6楼

with Underscore.js library: Underscore.js库:

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

如何通过其值获取JavaScript对象中的键?相关推荐

  1. 通过属性值从对象数组中获取JavaScript对象[重复]

    本文翻译自:Get JavaScript object from array of objects by value of property [duplicate] This question alr ...

  2. JavaScript获取数组对象里面的键(key)和值(value)

    JavaScript获取数组对象里面的键key和值value对象键值 知识回调 场景复现 三种方法获取数组对象里的键值 1.Object.keys() 2.Object.entries(obj) 3. ...

  3. 前端动态生成数组/获取数组对象中的最值

    Array.from Array.from({ length: 20 }, (v, k) => k) 获取数组对象中的最大值/最小值 方法一 Math的静态方法max/min结合ES6的扩展运算 ...

  4. 检查键是否存在于JavaScript对象中?

    如何检查JavaScript对象或数组中是否存在特定键? 如果密钥不存在,而我尝试访问它,它将返回false吗? 还是抛出错误? #1楼 它将返回undefined . var aa = {hello ...

  5. vue 往对象中添加键值对_【Vue】Vue学习之混入

    今天学习了Vue中的"混入"知识点,写篇文章用自己的语言来向自己解释它,如有不足还望指点. 混入(mixins): 混入提供了一种非常灵活的方式,来分发Vue组件中的可复用功能 - ...

  6. 如何从JavaScript对象中删除项目[重复]

    本文翻译自:How to remove item from a JavaScript object [duplicate] Possible Duplicate: 可能重复: How to remov ...

  7. 如何从JavaScript对象中删除键? [重复]

    本文翻译自:How do I remove a key from a JavaScript object? [duplicate] This question already has an answe ...

  8. 获取Java对象中所有的属性名称和属性值

    private static Logger logger= LoggerFactory.getLogger(ObjectFieldUtil.class);/*** 将旧对象的属性值与新对象的属性值做比 ...

  9. JavaScript对象中的可枚举属性和不可枚举属性

    在JavaScript中,对象的属性有可枚举和不可枚举之分,它是由对象属性描述符enumerable决定的.如果该属性是可枚举性的那么这个属性就能被for-in查找遍历到. 对象的属性描述符 在Jav ...

最新文章

  1. JVM实用参数(四)内存调优
  2. Java中Boolean是什么?
  3. Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platfrom))
  4. Web Worker的最好文章
  5. C#的类修饰符和成员修饰符
  6. python:linux中升级python版本
  7. RestFul风格学习
  8. linux 离线安装nfs,ubuntu 上离线安装包制作与安装之NFS搭建
  9. 最短路径和距离及可视化——matlab
  10. 2008R2更新链接服务器(SQL2000)慢的问题
  11. 可重启的活动目录域服务
  12. 勤哲excel服务器点击修改,用勤哲Excel服务器实现工作任务管理系统
  13. 终极算法【4】——联结学派
  14. Java ques:Client does not support authentication protocol requested by server;Access denied user‘roo
  15. java使用JSON-RPC进行BTC、LTC钱包开发
  16. Antd组件库的使用
  17. 英语思维导图大全 阅读理解(二十一)
  18. android chrome 夜间,【科技知识】(暗黑模式)Android安卓版的Chrome谷歌浏览器这样设置暗黑模式(夜间模式)...
  19. 使用nginx做负载均衡
  20. jQuery三款简约MP3播放器插件

热门文章

  1. 算法---给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合
  2. 算法-------三角形最小路径和(Java版本)
  3. android 布局preview 技巧
  4. cordova入门——cordova环境配置
  5. Hive Serde、Beeline、JDBC
  6. 人工智能实践:TensorFlow笔记学习(四)—— 神经网络优化
  7. Swift 反射Mirror的使用
  8. sql 差值_使用Blink CEP实现差值聚合计算
  9. CentOS7.6离线安装JDK1.8
  10. GLPI开源资产管理系统