[英]For-in with a hard-coded array
菜鳥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]
}
或以下內容(在現代瀏覽器中或帶有偽裝功能的情況下):
[...].forEach(function(value) {
// use value
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.