2013-04-15 25 views
0

forEach方法設計爲僅用於javascript中的數組嗎?任何人都可以共享想法或示例,以瞭解可以使用forEach()方法完成哪些主要任務,或者僅用於獲取元素值和索引?在javascript中使用forEach方法

+0

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach - 將是你最好的開始 –

回答

2

它被設計爲在陣列工作,但可以在任何類似數組的對象進行操作(雖然你仍然有從那裏某處存在訪問)。

例如,在一個節點列表:

Array.prototype.forEach.call(
    document.getElementsByTagName('div'), 
    function (divElement) { console.log(divElement); } 
); 
+1

嘗試''abc「.forEach(function(v){console .LOG(v)})'。你必須使用應用程序或呼叫。 –

+0

@Quentin不適用於類似數組的對象 –

+0

@dystroy - 是的,您必須使用apply或call。這並不意味着你不能使用它。 – Quentin

1

它是一個數組函數。見documentation

可以使用任何類似數組的對象,而是因爲你必須使用applycall它不是很方便。例如:

[].forEach.call("abc",function(v){console.log(v)}) 

遍歷對象鍵,你應該使用for..in

for (key in object) { 
    var value = object[key]; 
} 

需要注意的是jQuery的兼容性功能$.each使兩個數組和非數組對象,但你一般都知道同樣的迭代函數如果你正在處理一個數組(或者你應該),所以我只會用它來與舊的瀏覽器兼容。

+0

只爲良好的閱讀! http://stackoverflow.com/questions/500504/why-is-using-for-in-with-array-iteration-such-a-bad-idea –