Rookie JS问题在这里:
for( var p in ['nodeName', 'nodeType', 'tagName', 'localName'] ) {
console.log( p + '=' + all[i][p] + '\n' );
}
Run Code Online (Sandbox Code Playgroud)
我希望看到类似的东西
nodeName=DIV
Run Code Online (Sandbox Code Playgroud)
相反,我得到了
0=undefined
Run Code Online (Sandbox Code Playgroud)
我是否被迫将数组分配给变量,以便我可以索引它?有没有办法在for-in中使用此语法并从数组中检索字符串?
谢谢!
使用for..in一个数组是几乎总是错的.它遍历对象属性,而不是值-s所以在你的情况下它会产生0,1,2和3. 如果你决定用自定义方法扩展它会变得更糟Array.prototype(这与扩展Object.prototype不是一个很大的禁忌).使用时,它们的名称也将被重复使用for..in.
做你想做的事的正确方法是这样的:
var foo = [...];
for(var i = 0; i < foo.length; i++) {
// use foo[i]
}
Run Code Online (Sandbox Code Playgroud)
或者这个(在现代浏览器中或者使用shim'd功能):
[...].forEach(function(value) {
// use value
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1984 次 |
| 最近记录: |