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

720

我有一个非常简单的JavaScript对象,我将其用作关联数组。是否有一个简单的函数可以让我获取值对应的键名,还是我必须手动迭代对象并找到它?


没有这样的标准函数可以实现这个功能。如果映射是真正的双向的,那么构建一个“翻转”的映射并对其进行索引就很容易了。否则,一个简单的属性迭代器(可能带有hasOwnProperty保护)和一个隐藏在函数内部的早期返回就可以很好地解决问题... - user166390
如果一个对象被多个键引用,这该怎么办呢? var o = []; var map = {first: o, second: o}find_key(o) 会返回什么? - Gareth
5
没问题 ;) 我只是打算将它用于具有唯一键值对的数组。 - arik
可能是获取JavaScript键/值对象键的最佳方法的重复问题。 - Andy
1
我已经制作了一个没有迭代的版本 https://dev59.com/kmkw5IYBdhLWcg3waZ74#36705765。测试所有建议的解决方案在jsfiddle上将是有趣的。 - Pawel
31个回答

-2

保持简单!

你不需要通过复杂的方法或库来过滤对象,Javascript有一个内置函数叫做Object.values

例如:

let myObj = {jhon: {age: 20, job: 'Developer'}, marie: {age: 20, job: 
'Developer'}};

function giveMeTheObjectData(object, property) {
   return Object.values(object[property]);
}

giveMeTheObjectData(myObj, 'marie'); // => returns marie: {}

这将返回对象属性数据。

参考

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Object/values


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接