【发布时间】:2014-09-05 23:51:14
【问题描述】:
为什么javascript会返回这种类型的错误:
TypeError: Cannot use 'in' operator to search for 'active' in undefined
当我做这样的事情时
foo = [
{link:"http1", active:"true"},
{link:"http2", active:"true"},
{link:"http3"}
]
var checker = function(){
for(i=0; i<= foo.length; i++){
if('active' in foo[i]){
checked = true
}
}
}
但是当我在控制台中使用相同的 foo 对象执行此操作时
'active' in foo[0]
返回真?
【问题讨论】:
-
JavaScript 最佳实践:不要使用
in。 JavaScript 一直支持您尝试做的事情,就像if (foo[i].active) { ... }一样简单,或者如果属性在命名变量中,假设我们有一个调用“propname”,if (foo[i][propname]) { ... }。为了理智,你可以if (foo[i] && foo[i].active) { ... } -
谢谢。来自 python 似乎很正常,但我明白你在说什么
标签: javascript for-loop typeerror in-operator