如何在其数组中找到包含值的对象键?
How to find an object key that contains a value within it's array?
我有以下 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"
,我如何找到包含此 url 的 urlSets
的 key
?
我已经在使用 underscore.js
库,并且认为我可能会使用 _.findKey
和 _.contains
。我一直在玩这样的东西:
_.findKey urlSets, (key) ->
return _.contains(key, "url-a.com")
…但没有运气。它returns TypeError: undefined is not a function
.
您已经尝试使用...
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
我发现不为这种循环使用任何特殊库更容易,尤其是在使用具有如此好的循环的咖啡脚本时。
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 (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"
,我如何找到包含此 url 的 urlSets
的 key
?
我已经在使用 underscore.js
库,并且认为我可能会使用 _.findKey
和 _.contains
。我一直在玩这样的东西:
_.findKey urlSets, (key) ->
return _.contains(key, "url-a.com")
…但没有运气。它returns TypeError: undefined is not a function
.
您已经尝试使用...
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
我发现不为这种循环使用任何特殊库更容易,尤其是在使用具有如此好的循环的咖啡脚本时。
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
调用。