forEach 會將陣列中所有的元素依序跑過一遍,例如下面的函式,陣列中有幾筆資料它就會跑幾次。
基本寫法如下:
let arr = [1, 3, 5, 7, 9];
arr.forEach(function(item, index) {
console.log(item);
});
// 1
// 3
// 5
// 7
// 9
//這些印出的數字是分開的喔,每跑一次只印出一個數字
function(item, index)
中的 item 表示陣列中的元素,index 為索引值。
我們來用下面的範例看看會比較清楚:
let arr2 = ['紅', '橙', '黃', '綠', '藍'];
arr2.forEach(function(item, index) {
console.log(`${index} 號是 ${item}色`);
});
// 0 號是 紅色
// 1 號是 橙色
// 2 號是 黃色
// 3 號是 綠色
// 4 號是 藍色
function(item, index)
裡的參數名稱是可以自己更改的,你可以把 item 改成 i、index 改成 x 都沒問題,它固定第一個值就是代表 item ,第二個值就是索引。
除了可以一個一個印出來以外,累加數字或組字串也是很常使用的方式。
let arr2 = ['紅', '橙', '黃', '綠', '藍'];
let allColor = '';
arr2.forEach(function(item, index) {
allColor += item;
});
console.log(allColor);
// 紅橙黃綠藍
首先我們先宣告一個空的字串變數 allColor,接著使用 forEach
去跑 arr2 陣列。
跑第一次時,就將第一筆資料的 item '紅'
這個字串給加到原本空的字串中,此時變數 allColor = '紅';
跑第二次時,將第二筆資料的 '橙'
這個字串加到 allColor 裡,此時變數 allColor = '紅橙';
藉著以此類推,等陣列全部的資料跑完後就會停止,然後 console.log
印出最後相加後的 allColor 結果。