我有以下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
。
答案 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