2017-10-09 71 views
0

我有一个问题在JS约for loop,这里是一个例子:为什么我在javascript中使用不同的`for loop`时会得到不同的结果?

在这一部分,childobject(我想)。

for (var i = 0; i < element.childNodes.length; i++) { 
     var child = element.childNodes[i]; 
     console.log(typeof(child)); 
} 

但是,当变化的代码,成为Stringchild,价值0, 1, 2 ...

for (var child in element.childNodes) { 
     console.log(typeof(child)); 
} 

为什么两类for loop得到了不同的结果? 谢谢..

+2

第二个循环正在循环通过键。为了获得相似的结果,你需要'element.childNodes [child]' – maioman

+1

,因为'for..in'循环迭代了一个对象的可枚举键。像'for(var key in object)...'。你可能是指'for(var element.childNodes的子元素)...' – Thomas

+1

你应该使用'of'而不是'in' –

回答

-1

for in循环中,您检索密钥。以下应记录相同,你的第一个循环:

for (var child in element.childNodes) { 
    console.log(typeof(element.childNodes[child])); 
} 
相关问题