javascript - 在 JS 中查找对象特定值的键

标签 javascript arrays object lodash

我有一个这样的对象,它是使用 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/

相关文章:

node.js - Postman 将 Mongo 数组转换为对象

javascript - react "Unhandled Rejection (TypeError): this.state.features.map is not a function"

javascript - 从 Cesium Display 加载和卸载 GeoJSON

javascript - 错误 : `createNavigationContainer()` has been removed. 请改用 `createAppContainer()`

arrays - 如何遍历整数数组?

ios - 如何从 firebase 数据库中以字符串而不是字典的形式检索数据并将其添加到数组中?

arrays - Angular JS - ng-repeat 数组中的第一个元素

c# - 我如何在 C# 中释放对象

javascript - 仅在单击后加载 Bootstrap 模式内容

c++ - OO设计、表格设计