forEach()
và map()
là hai phương thức phổ biến trong JavaScript được sử dụng để lặp qua các phần tử của mảng. Dưới đây là một số điểm khác nhau giữa chúng:
forEach()
:
map()
:
forEach()
:
undefined
.const numbers = [1, 2, 3]; numbers.forEach(num => { console.log(num * 2); // In ra 2, 4, 6 }); const result1 = numbers.forEach(num => num * 2); console.log(result1); // undefined
map()
:
const numbers = [1, 2, 3]; const result2 = numbers.map(num => num * 2); console.log(result2); // [2, 4, 6]
forEach()
:
const numbers = [1, 2, 3]; numbers.forEach((num, index) => { numbers[index] = num * 2; // Thay đổi mảng gốc }); console.log(numbers); // [2, 4, 6]
map()
:
const numbers = [1, 2, 3]; const doubled = numbers.map(num => num * 2); console.log(numbers); // [1, 2, 3] console.log(doubled); // [2, 4, 6]
forEach()
:
map()
:
Tiêu chí | forEach() | map() |
---|---|---|
Mục đích | Thực hiện hành động trên mỗi phần tử | Biến đổi và tạo mảng mới |
Giá trị trả về | undefined | Mảng mới |
Thay đổi mảng gốc | Có thể thay đổi | Không thay đổi |
Hiệu suất | Thích hợp cho các tác vụ | Thích hợp cho biến đổi dữ liệu |
Như vậy, bạn nên chọn forEach()
khi bạn muốn thực hiện một hành động mà không cần lưu kết quả, và chọn map()
khi bạn muốn biến đổi dữ liệu và cần một mảng mới chứa kết quả.