Array.forEach()迭代整個陣列元素

Javascript的Array.forEach()方法:

Array.forEach()方法會為陣列中的每個元素呼叫一次回呼函式,藉以對陣列元素進行操作。

但若陣列元素被刪除或是未給定初始值則不會呼叫回呼函式。

此方法出現在ECMA-262第五版中,因此可能會有些瀏覽器並不支援這方法。

若要確保在所有瀏覽器中都能正確執行,可在原型中自行定義此方法。

Array.forEach()的語法:

array.forEach( callbackfn [ , thisArg ] )

callbackfn:回呼函式,forEach()方法會為每個陣列元素呼叫此函式,該函式需由設計師自行撰寫,

                   callbackfn有三個傳入值element、index、array,

                   element:陣列元素的值。

                   index:陣列元素索引。

                   array:呼叫forEach()的陣列。

thisArg:callbackfn中的this代表的物件,如果省略則callbackfn中的this代表全域物件(非嚴格模式下)。

Array.forEach()的範例:

<script type="text/javascript">
  var a=[1,2,3,4,5,6,7,8,9,10]
  function list(element, index, array) {
   document.writeln("第"+index+"個陣列元素="+element+"<br/>");
  }
  a.forEach(list);
</script>

Array.forEach()的範例輸出:

第0個陣列元素=1
第1個陣列元素=2
第2個陣列元素=3
第3個陣列元素=4
第4個陣列元素=5
第5個陣列元素=6
第6個陣列元素=7
第7個陣列元素=8
第8個陣列元素=9
第9個陣列元素=10

在原型中新增Array.forEach()方法:

Array.filter()方法是ECMS-262中的標準方法,但並非所有瀏覽器都支援,

為確保在所有瀏覽器中都能正確執行,可自行在原型中定義該方法。

下面是MDN中 Array.forEach 提供的程式,將其放入script的開頭:

if ( !Array.prototype.forEach ) {
 Array.prototype.forEach = function(fn, scope) {
   for(var i = 0, len = this.length; i < len; ++i) {
    fn.call(scope, this[i], i, this);
   }
 }
}

MDN中還有個比較正式的寫法,這裡就不列了。

關於Array物件的其他屬性與方法,請參考:陣列物件 Array

 
 

  按個讚!~支持本站!~

FB推薦載入中  

你可能會有興趣的文章