javascript - 如何找到数组中包含值的对象键?

标签 javascript arrays coffeescript underscore.js javascript-objects

我有以下 Javascript (Coffeescript) 对象:

urlSets =
  a: [
    'url-a.com'
    'url-b.com'
    'url-c.com'
    ]
  b: [
    'url-d.com'
    'url-e.com' 
    'url-f.com'
    ]
  c: [
    'url-g.com'
  ]

假设我有值“url-a.com”,我如何找到包含此网址的urlSetskey

我已经在使用 underscore.js 库,并且认为我可能会使用 _.findKey_.contains。我一直在玩弄这样的东西:

_.findKey urlSets, (key) ->
  return _.contains(key, "url-a.com")

...但没有运气。它返回类型错误:未定义不是函数

最佳答案

我发现不使用任何特殊的库来进行这种循环会更容易,特别是在使用具有如此好的循环的 CoffeeScript 时。

foundKey = null

for key, urls of urlSets
  if 'url-a.com' in urls
    foundKey = key

console.log foundKey #=> a

它使用 for key, value of object 循环轻松循环 urlSets 对象,然后包含 if item in array检查哪个咖啡编译为 indexOf 调用。

关于javascript - 如何找到数组中包含值的对象键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29221938/

相关文章:

javascript - 强调每个方法没有运行在整个 Backbone 集合中

javascript - Jquery,从 <li> 标签获取值

javascript - 如何创建全屏幻灯片

javascript - 一个页面中的多个表单分别为空检查

c# - 计算字符串中的箭头

AngularJS忽略了一些标题

javascript - Accordion 面板不会打开(我如何让 div 落后于其他人)

java - 将列表的列表转换为字符串数组

arrays - 二维数组中非相邻元素的最大和

javascript - 重写ajax jquery调用coffeescript