菜鸟 JS 问题在这里:
for( var p in ['nodeName', 'nodeType', 'tagName', 'localName'] ) {
console.log( p + '=' + all[i][p] + '\n' );
}
我希望看到类似的东西
nodeName=DIV
相反,我得到
0=undefined
我是否被迫将数组分配给一个变量,以便我可以索引它?有没有办法在 for-in 中使用这种语法并从数组中检索字符串?
谢谢!
菜鸟 JS 问题在这里:
for( var p in ['nodeName', 'nodeType', 'tagName', 'localName'] ) {
console.log( p + '=' + all[i][p] + '\n' );
}
我希望看到类似的东西
nodeName=DIV
相反,我得到
0=undefined
我是否被迫将数组分配给一个变量,以便我可以索引它?有没有办法在 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]
}
或者这个(在现代浏览器中或使用 shim'd 的功能):
[...].forEach(function(value) {
// use value
});