Cách dùng Array filter() trong Javascript
Trong bài này chúng ta sẽ tìm hiểu hàm filter trong javascript, đây là hàm dùng để lặp qua các phần tử trong mảng, dùng để lọc các phần tử trong mảng theo một điều kiện nào đó.
Hàm filter được tích hơp sẵn trong đối tượng mảng giống như hàm map trong javascript. Về cách thức hoạt động thì nó giống hàm map, nghĩa là nó sẽ có một tham số dạng function và function này sẽ xử lý cho mỗi lần lặp. Nếu function return true thì phần tử lần lặp đó được chấp nhận, ngược lại sẽ không được chấp nhận.
1. Filter trong javascript là gì?
Filter trong Javascript là một phương thức thuộc đối tượng mảng. Nó có công dụng đúng ý nghĩa với tên gọi của nó, tức là sẽ lặp qua qua các phần tử, sau đó tùy vào từng bài toán mà sẽ quyết định chọn phần tử đó hay không. Cuối cùng hàm này sẽ trả về một mảng các phần tử đã chọn.
Cú pháp của filter trong js như sau:
Bài viết này được đăng tại [free tuts .net]
objectArray.filter(function(value){ return true / false; });
Nếu return true
thì phẩn tử được chọn, ngược lại return false
thì phần tử không được chọn. Còn value
chính là giá trị của mỗi phần tử trong mỗi lần lặp.
Ví dụ 1: Dùng dụng hàm filter với lệnh return true.
var numbers = [100, 200, 300, 400, 500]; var selected_number = numbers.filter(function(value){ return true; }); console.log(selected_number);// 100, 200, 300, 400, 500
Như bạn thấy, mảng mới có tổng số phần tử và giá trị của chúng không khác gì mảng cũ.
Ví dụ 2: Dùng hàm filter với lệnh return false.
var numbers = [100, 200, 300, 400, 500]; var selected_number = numbers.filter(function(value){ return false; }); console.log(selected_number); // Rỗng
Kết quả trả về một mảng không có phần tử nào, lý do là ta đã return false cho mọi tường hợp.
Ví dụ 3: Tạo mảng mới từ mnagr numbers và bỏ đi phần tử 300.
var numbers = [100, 200, 300, 400, 500]; var selected_number = numbers.filter(function(value){ if (value == 300){ return false; } return true; }); console.log(selected_number); // 100, 200, 400, 500
Kết quả là phần tử có giá trị 300 đã biến mất.
2. Ví dụ hàm filter trong javascript
Ta sẽ làm thêm một ví dụ nữa để giúp các bạn dễ hình dung hơn nhé.
Ví dụ: Lấy các phần tử chẵn trong mảng cho trước.
Với bài này thì ta có hai cách, thứ nhất là sử dụng hàm filter, và thứ hai là sử dụng vòng lặp for.
Cách 1: Sử dụng hàm filter
var numbers = [5, 10, 20, 22, 60, 75, 90]; var new_numbers = numbers.filter(function(item){ return (item % 2 == 0); }); console.log(new_numbers); // Kết quả: [10, 20, 22, 60, 90]
Cách 2: Sử dụng vòng lặp for
Một cách giải khác sử dụng vòng lặp for.
var numbers = [5, 10, 20, 22, 60, 75, 90]; var new_numbers = []; for (var i = 0; i < numbers.length; i++){ if (numbers[i] % 2 == 0){ new_numbers.push(numbers[i]); } } console.log(new_numbers); // Kết quả: [10, 20, 22, 60, 90]
3. Lời kết
Như vậy là mình đã hướng dẫn xong cách sử dụng vòng lặp foreach trong Javascript. Lưu ý là hàm này ta chỉ có thể sử dụng với mảng thôi nhé. Nếu bạn muốn sử dụng với đối tượng object thì tham khảo vòng lặp forEach nhé.