Trong JavaScript, Phương thức forEach
duyệt qua từng phần tử trong mảng theo thứ tự tăng dần và thực thi một hàm cho mỗi phần tử đó. Phương thức này sẽ không thực thi hàm đối với các phần tử mảng không có giá trị, không được khởi tạo hoặc đã bị xóa.
Cú pháp
arr.forEach( function callback(currentValue [, index[, array]] ) { //vòng lặp của bạn }[, thisArg] );
Khác với cú pháp lặp truyền thống, không có cách nào để ngừng vòng lặp forEach
giữa chừng ngoài việc ném ra một ngoại lệ. Nếu vì một mục đích nào đó mà bạn cần ngừng vòng lặp thì nên dùng cách khác thay vì dùng forEach
Trong trường hợp đó bạn có thể dùng:
- Vòng lặp
for
đơn giản - Vòng lặp
for
…of
Chuyển đổi vòng lặp for
thành forEach
Hai đoạn code này tương đương nhau
const items = ['item1', 'item2', 'item3']; const copy = []; for (let i=0; i <items.length; i++) { copy.push(items[i]) }
và
const items = ['item1', 'item2', 'item3']; const copy = []; items.forEach(function(item){ copy.push(item) });
Tổng của tất cả các giá trị trong mảng:
var sum = 0; var numbers = [65, 44, 12, 4]; numbers.forEach(myFunction); function myFunction(item) { sum += item; document.getElementById("demo").innerHTML = sum; }
Nhân mỗi phần tử trong mảng với 10
var numbers = [65, 44, 12, 4]; numbers.forEach(myFunction) function myFunction(item, index, arr) { arr[index] = item * 10; } document.getElementById("demo").innerHTML = numbers;