如何在其数组中找到包含值的对象键?

时间:2015-03-23 22:53:32

标签: 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",如何查找包含此网址的key urlSets

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

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

......但没有运气。它返回TypeError: undefined is not a function

2 个答案:

答案 0 :(得分:0)

我发现不使用任何特殊库进行这种循环更容易,特别是在使用具有这种漂亮循环的咖啡脚本时。

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来电。

答案 1 :(得分:-1)

您已尝试使用...

 var obj = {a:1, b:2, c:3};

 for (var prop in obj) {
    console.log("o." + prop + " = " + obj[prop]);
 }

如果有用,请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in