來看看forEach在MDN的定義
forEach() 方法會將陣列內的每個元素,皆傳入並執行給定的函式一次。
語法
arr.forEach(function callback(currentValue[, index[, array]]) {
//your iterator
}[, thisArg]);
參數
假設我們有以下陣列:
let myArray = [2,4,6,8,10]
若使用傳統for loop,需取得陣列的長度及index,並透過迴圈去把每個索引(index)的元素(item)取出來做運算。
for (var i=0; i < myArray.length ; i++ ) {
console.log(`index:${i}, value:${myArray[i]}`);
}
/*output:
index:0, value:2
index:1, value:4
index:2, value:6
index:3, value:8
index:4, value:10 */
使用forEach方法,看起來更簡單明瞭:
會對陣列內的每個元素去做操作,傳入並執行給定的函式。自然的會將每一個元素去傳遞進去console.log ,而不需要檢查邊界條件。
myArray.forEach(function(item, index) {
console.log(`index:${index}, value:${item}`);
});
/*output:
index:0, value:2
index:1, value:4
index:2, value:6
index:3, value:8
index:4, value:10*/
do...while語句是while語句的另一種變形的版本,差異只在於"它會先執行一次區塊中的語句,再進行判斷情況",也就是會"保證至少執行一次其中的語句",基本語法結構如下:
語法
do
statement
while (condition);
範例
下面的例子中,do...while 循環至少有一次,並且繼續循環直到i不小於 5 時結束。
var result = '';
var i = 0;
do {
i += 1;
result += i + ' ';
} while (i < 5);
//'1 2 3 4 5 '
資料來源:
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
https://realdennis.medium.com/array-%E5%8E%9F%E5%9E%8B%E7%9A%84-foreach-%E6%9C%89%E5%A4%9A%E5%A5%BD%E7%94%A8-%E5%AD%B8%E6%9C%83%E9%AB%98%E9%9A%8E%E5%87%BD%E6%95%B8%E4%B9%8B%E5%BE%8C%E9%83%BD%E4%B8%8D%E6%83%B3%E5%AF%AB-javascript-%E4%BB%A5%E5%A4%96%E7%9A%84%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80%E4%BA%86-dc4b594a045a
https://eyesofkids.gitbooks.io/javascript-start-from-es6/content/part3/loop.html
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/do...while