Hàm forEach() trong Javascript
Trong bài này mình sẽ nói về hàm forEach trong javascript, đây là hàm dùng để lặp qua các phần tử của mảng một cách dễ dàng.
Hàm forEach sẽ lần lượt truyền các phần tử của mảng vào một hàm được cung câp trước đó, hàm này sẽ tiến hành xử lý các thành phần tử cửa mảng như là một tham số truyền vào.
1. Hàm forEach trong Javascript là gì?
forEach javascript là một phương thức thuộc đối tượng mảng trong javascript. Hàm này sẽ giúp lặp qua các phần tử của mảng, nó có một tham số truyền vào, và tham số này sẽ lưu trữ giá trị của phần tử trong mỗi lần lặp.
Hàm forEach sẽ không thực hiện đối với những phần tử không có giá trị.
Bài viết này được đăng tại [free tuts .net]
Cú pháp như sau:
array.forEach(function(currentValue, index, arr), thisValue)
Trong đó:
currentValue
- giá trị của phần tử hiện tại.index
- chỉ số của phần tử hiện tại.arr
- mảng mà phần tử hiện tại thuộc về.thisValue
- tham số không bắt buộc. Nếu được truyền vào thì thisValue sẽ được sử dụng làm giá trị this. Nếu không được truyền vào thì giá trị "this" là "undefined".
Thực ra thì bạn hoàn toàn có thể sử dụng vòng lặp for, nhưng javascript đã cung cấp phương thức forEach rồi nên từ giờ bạn sẽ có thêm một sự lựa chọn.
Ví dụ: Lặp qua và in giá trị của các phần tử trong mảng ranks.
let ranks = ['A', 'B', 'C']; ranks.forEach(function (e) { console.log(e); // A B C });
Với bài này thì bạn có thể sử dụng vòng lặp for như sau:
let ranks = ['A', 'B', 'C']; for (let i = 0; i < ranks.length; i++) { console.log(ranks[i]); }
2. Sử dụng arrow function trong hàm forEach
Ngoài cách viết function bình thường như trên thì bạn có thể sử dụng arrow function trong es6.
let ranks = ['A', 'B', 'C']; ranks.forEach((e) => { console.log(e); });
3. Sử dụng this trong hàm callback của forEach
Trước tiên hãy xét ví dụ dưới đây.
let ranks = ['A', 'B', 'C']; ranks.forEach(function (e) { console.log(this); // window object });
Nếu chạy trong chế độ bình thường thì con trỏ this chính là đối tượng window, nhưng nếu chạy trong chế độ strict mode thì nó sẽ là undefined. Nếu bạn muốn biết rõ hơn vê con trỏ this thì hãy xem trong bài viết hiểu rõ về this trong Javascript.
Bây giờ mình muốn con trỏ this chính là biến ranks
thì làm bằng cách nào? Rất đơn giản, hãy sử dụng tham số thisValue
mà mình đã giới thiệu ở phần 1.
let ranks = ['A', 'B', 'C']; ranks.forEach(function (e) { console.log(this); // ranks }, ranks);
Chạy ví dụ này lên thì this chính là biến ranks.
Tuy nhiên, nếu bạn sử dụng arrow function thì đối tượng this không tồn tại nhé các bạn.
let ranks = ['A', 'B', 'C']; ranks.forEach((e) => { console.log(this); // window object }, ranks);
4. Một ví dụ khác nữa về forEach javascript
Ví dụ: sử dụng hàm forEach để in ra các phần tử của mảng.
demoP = document.getElementById("demo"); var numbers = [4, 9, 16, 25]; function myFunction(item, index) { demoP.innerHTML = demoP.innerHTML + "index[" + index + "]: " + item + "<br>"; }
Trên là cách sử dụng hàm foreach trong javascript. Qua bài này bạn phải nắm bắt cú pháp nói chung và những tham số truyền vào của hàm forEach. Để lặp qua các phần tử của mảng thì có rất nhiều giải pháp, và tùy vào từng trường hợp mà bạn hãy chọn một giải pháp phù hợp.