这是如何在数组中搜索值的存在:
words = ["rattled", "roudy", "rebbles", "ranks"]
alert "Stop wagging me" if "ranks" in words
我在寻找具有指定属性值的对象的存在时寻找类似的优雅:
words = [
{ id: 1, value: "rattled" },
{ id: 2, value: "roudy" },
{ id: 3, value: "rebbles" },
{ id: 4, value: "ranks" }
]
alert "Stop wagging me" if "ranks" in words.value
但是底部的线不起作用。
答案 0 :(得分:1)
我只是试着跟随它,它对我有用:
alert "Stop wagging me" if "ranks" in (word.value for word in words)
答案 1 :(得分:1)
如果您想要1-liner,您可以执行以下操作:
alert "Stop wagging me" if do -> return yes for w in words when w.value is 'ranks'
优点是它将在数组中迭代而不是派生一个新的(内存有效),并且一旦找到匹配(cpu-efficient)就会停止迭代。付出的代价是它的可读性可能稍差。要解决这个问题,最好的方法是制作自己的效用函数:
inObjectMember = (obj, key, value) ->
for o in obj when o[key] is value
return yes
alert "Stop wagging me" if inObjectMember words, 'value', 'ranks'