我有一个这样的对象,它是使用 lodash _.zipObject()
函数生成的。所以我有 2 个数组,一个是位置,一个是数字。
var locs = {'Aberdeen': 304, 'Aberystwith': 109, 'Belfast': 219, 'Birmingham': 24, 'Brighton': 147, …}
我需要根据输入值返回 key 。例如,function(304)
将返回 'Aberdeen'
。
我试过 _.findkey(locs, 304);
但这只是返回未定义。我尝试过的任何其他尝试总是返回未定义或 -1。不太确定从这里去哪里。
最佳答案
要找到键,请使用带有 _.findKey()
的谓词函数:
var locs = {'Aberdeen': 304, 'Aberystwith': 109, 'Belfast': 219, 'Birmingham': 24, 'Brighton': 147 };
var key = _.findKey(locs, function(v) {
return v === 304;
});
console.log(key);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
您可以通过使用请求的值柯里化(Currying) _.eq()
来创建谓词:
var locs = {'Aberdeen': 304, 'Aberystwith': 109, 'Belfast': 219, 'Birmingham': 24, 'Brighton': 147 };
var key = _.findKey(locs, _.curry(_.eq, 304));
console.log(key);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
关于javascript - 在 JS 中查找对象特定值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46320795/