在JavaScript中,我们可以使用in
operator测试对象中是否存在命名属性:
var obj = { foo: 123, bar: 0 };
'foo' in obj; // => true
'bar' in obj; // => true, handy since "obj.bar" is falsey.
'gah' in obj; // => false
但是,在CoffeeScript中,in
运算符被重载以执行数组搜索(可能是为了防止误用for...in
),因此我们无法像上面那样使用它。相反,似乎我们必须对对象的键列表中的命名属性进行线性搜索:
obj = { foo: 123, bar: 0 }
'foo' in Object.keys(obj) # true, but O(n) search instead of likely O(1).
答案 0 :(得分:2)
使用:
obj ={foo:13}
(foo of obj) == true