【问题标题】:Obtain Key from value in JavaScript Object从 JavaScript 对象中的值获取 Key
【发布时间】:2017-07-10 14:28:09
【问题描述】:

我有一个带有布尔值的 JS 对象,如下所示

var obj = {
    key_1: false,
    key_2: true,
    key_3: false
}

我知道只有一个值可以为真。是否有相同的库方法,因为我找不到。

我尝试使用_.indexOf,但这似乎不起作用

【问题讨论】:

  • 有很多选项可供选择,Object.keys,Object.values,Object.entries,for key in obj,

标签: javascript object underscore.js javascript-objects


【解决方案1】:

如果您知道只有一个 true 值,您可以在 Object.keys() 上使用 find() 来返回该值的键。

var obj = {
  key_1: false,
  key_2: true,
  key_3: false
}

var key = Object.keys(obj).find(e => obj[e] == true);
console.log(key)

【讨论】:

  • 你不必检查obj[e]是否为真,直接返回即可
【解决方案2】:

不会超出其自身范围的其他解决方案。让它更“纯粹”
(较少的浏览器支持)

var obj = {
  key_1: false,
  key_2: true,
  key_3: false
}

var key = Object.entries(obj).find(a => a[1])[0]
console.log(key)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多