forEach()函數從頭到尾把陣列遍歷一遍。有三個參數分別是:數組元素,元素的索引,數組本身(如果是一個參數就是數組元素,也就是數組的值。
var data=[1,2,3,4,5,6]; var sum=0; data.forEach(function(v){//其中的v就是数组的值 123456 sum+=v;}) document.write(sum+"<br>");//打印出来是21 data.forEach(function(o,p,q){//分别对应:数组元素,元素的索引,数组本身 q[p]=o+1; }) document.write(data);
注意:forEach無法在所有元素都傳遞給呼叫的函數之前終止(而for循環卻有break方法),如果要提前終止,必須把forEach放在try塊中,並能拋出一個異常。如果forEach()呼叫的函數拋出foreach.break異常,迴圈會提前終止:
function foreach(a,b,c){ try{ a.forEach(b,c); }catch(e){ if(e===foreach.break)return; else throw e; } } foreach.break=new Error("StopIteration"); }