Hướng dẫn dùng array.filter javascript trong PHP

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 đó.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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é.

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 đó.

Nội dung chính

  • 1. Filter trong javascript là gì?
  • 2. Ví dụ hàm filter trong javascript
  • 3. Lời kết
  • 2. Cú pháp hàm array_filter[] trong PHP
  • 3. Ví dụ về hàm array_filter[] trong PHP

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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é.

Nội Dung

  • 1. Hàm array_filter[] trong PHP
  • 2. Cú pháp hàm array_filter[] trong PHP
  • 3. Ví dụ về hàm array_filter[] trong PHP

Hàm array_filter[] trong PHP giúp ta lọc các giá trị của mảng bằng cách sử dụng một hàm callback [hàm gọi lại] . Nó sẽ duyệt qua mỗi value trong mảng input đang truyền tới hàm callback . Có nghĩa là nó sẽ lặp lại từng giá trị trong mảng, chuyển chúng tới hàm do người dùng xác định hoặc hàm gọi lại. Ta có thể truyền mảng vào như là tham số đầu tiên và một hàm ẩn danh làm tham số thứ hai. Nếu như hàm callback trả về True thì value hiện tại của mảng input sẽ được trả về trong mảng kết quả và key của mảng được giữ nguyên. Với cách này khi key của mảng input được giữ nguyên thì có nghĩa là key của mảng input và mảng kết quả là giống nhau.

2. Cú pháp hàm array_filter[] trong PHP

Ta có cú pháp của hàm array_filter[] trong PHP :

array_filter[$array, $callback_function, $flag]

Trong đó :

  • $array : chính là mảng đầu vào mà hàm array_filter[] sẽ thao tác . Tham số này là bắt buộc.
  • $callback_function : đề cập đến hàm do người dùng tự xác định và truyền vào. Nếu hàm callback không được cung cấp, thì tất cả đầu vào của mảng input mà tương đương với FALSE sẽ bị xóa. Tham số này không bắt buộc
  • $flag : xác định đối số nào được gửi đến hàm callback.

Với $flag nó có thể một trong mode :

  • ARRAY_FILTER_USE_KEY : chuyển key thành đối số duy nhất cho một hàm callback thay vì value của mảng
  • ARRAY_FILTER_USE_BOTH : chuyển cả valuekey làm đối số để gọi lại thay vì value của mảng

Mặc định là 0 sẽ chuyển giá trị làm đối số duy nhất để gọi lại thay thế. Cuối cùng một mảng được lọc được trả về.

Ví dụ:

Kết quả

Array
[
    [0] => 12
    [1] => 0
    [2] => 0
    [3] => 18
    [5] => 0
    [6] => 46
]

Ở ví dụ này ta sử dụng hàm array_filter[] để lọc ra mảng mới với value là những số chẵn ở mảng cũ. Trước tiên bạn có thể thấy rằng hàm callback là hàm tìm ra số chia hết cho 2 trong mảng $array . Lúc này giá trị là số chẵn sẽ là True và được giữ lại sau đó được in ra mảng mới[kể cả số 0]. Ngược lại số không phải số chẵn mang giá trị False và bị xóa.

Tuy nhiên cũng là ví dụ như trên nhưng mình sẽ không truyền hàm callback :


Kết quả

Array
[
    [0] => 12
    [3] => 18
    [4] => 27
    [6] => 46
]

Như ta có thể thấy rằng phần tử 0 hoặc False sẽ không được in ra.

Chú ý

Nếu mảng được thay đổi từ hàm gọi lại [ví dụ như thêm, xóa, không được đặt,…] thì hành động của hàm là không xác định.

3. Ví dụ về hàm array_filter[] trong PHP

Ví dụ 1: Tạo 1 mảng số lẻ lọc từ mảng int có sẵn

  • Sử dụng hàm array_filter[]

  • Sử dụng vòng lặp

Kết quả

Array [ [0] => 1 [1] => 3 [2] => 5 ]

Ta có thể thấy việc lọc bằng vòng lặp này chính là phương thức lọc của hàm array_filter[] . Vì vậy khi muốn lọc phần tử của một mảng thì hãy suy nghĩ cách dùng array_filter[] thay vì dùng mảng tạm hay vòng lặp nhé.

Ví dụ 2: Lọc một mảng không tuần tự dựa trên keyvalue

Kết quả

Array
[
    [first] => John
    [last] => Doe
]

Với hàm được truyền vào có giá trị trả về với việc value có giá trị và key không phải password . Ta sử dụng mode ARRAY_FILTER_USE_BOTH  để giúp callback nhận được cả key và value

Ví dụ 3:

Kết quả

Array
[
    [0] => laptrinhtudau
    [2] => 10
    [5] => 2022
    [7] => 1
]

Ở đây hàm array_filter[] sẽ loại bỏ những giá trị False. Mà ta thấy trong mảng có giá trị rỗng là False, False là False, null là False. Vì vậy mà mảng mới được lọc sẽ có value là những giá trị True là: laptrinhtudau , 10 , 2022 , 1.

Chủ Đề