Lọc giá trị cụ thể từ mảng JavaScript

Các. Phương thức filter[] trong JavaScript tạo một mảng mới với tất cả các phần tử vượt qua bài kiểm tra được triển khai bởi hàm được cung cấp

  • jav

Mục lục

Đôi khi chúng tôi có một mảng nhưng chúng tôi chỉ muốn trả về một vài mục được chọn từ mảng. Ví dụ: chúng ta có thể sử dụng phương thức array.filter[] để lọc một mảng người để chỉ tìm các nhân vật nữ của mảng

const people = [  { name: 'Debbie', gender: 'female' },  { name: 'Josh', gender: 'male' }]

Phương thức

people.filter[[currentValue, index, originalArray] => {  // decide who should be returned  return currentValue.gender === 'female'}]
0 gọi hàm gọi lại một lần cho mỗi phần tử trong một mảng và xây dựng một mảng mới cho tất cả các giá trị vượt qua bài kiểm tra được cung cấp trong hàm gọi lại này

Hàm nhận 3 đối số,

  • giá trị hiện tại, là giá trị hiện tại chúng tôi đang lặp lại
  • chỉ mục, chúng ta đang lặp đi lặp lại những gì
  • mảng ban đầu mà bộ lọc được gọi

people.filter[[currentValue, index, originalArray] => {  // decide who should be returned  return currentValue.gender === 'female'}]

Chúng ta có thể loại trừ mảng ban đầu trong hàm gọi lại nếu chúng ta không sử dụng nó. Chúng tôi có thể muốn sử dụng nó để đẩy một cái gì đó vào mảng trước khi chúng tôi thực hiện kiểm tra những gì sẽ trả về nhưng nếu không, chúng tôi chỉ cần xóa nó

people.filter[[currentValue, index] => {  // decide who should be returned  return currentValue.gender === 'female'}]

Thông thường, chúng ta đặt tên cho giá trị hiện tại là số ít của mảng, vì vậy trong trường hợp này, chúng ta nên đặt tên cho nó là người

people.filter[[person, index] => {  return person.gender === 'female'}]

Chúng ta cũng có thể sử dụng chức năng mũi tên để thay thế

people.filter[[person, index] => {  return person.gender === 'female'}]

Vì chúng tôi không sử dụng chỉ mục nên chúng tôi có thể loại bỏ điều đó. Chúng ta cũng có thể loại bỏ dấu ngoặc đơn vì chúng ta không cần chúng nếu chỉ có một đối số trong hàm mũi tên

people.filter[[person] => {  return person.gender === 'female'}]

Và vì nó chỉ là một dòng mà chúng tôi đang trả lại, chúng tôi có thể xóa trả về và dấu ngoặc nhọn và có tất cả trên một dòng giữ cho nó rất ngắn. Điều này có thể mất một chút thời gian để làm quen vì nó không dễ đọc như các ví dụ trước nhưng nhiều người sẽ sử dụng định dạng này

Hãy nghĩ về nó như là, đối với mảng người lọc mọi người và trả về những người có giới tính nữ

people.filter[person => person.gender === 'female']

Điều tuyệt vời về bộ lọc là nó không làm thay đổi mảng ban đầu. Vì vậy, nếu bạn

people.filter[[currentValue, index, originalArray] => {  // decide who should be returned  return currentValue.gender === 'female'}]
0, bạn vẫn sẽ nhận được tất cả những người từ mảng người khi bộ lọc tạo một mảng mới. Do đó, chúng tôi có thể lưu trữ bộ lọc mới của mình trong một const

________số 8

Dán nó vào bảng điều khiển để tự mình xem và thử với các giá trị hoặc kiểm tra codepen tôi đã tạo

Làm cách nào để lọc một đối tượng theo giá trị trong JavaScript?

keys[] để lọc một Đối tượng. Sau khi bạn đã tạo khóa, bạn có thể sử dụng bộ lọc[] để lặp qua các giá trị hiện có và chỉ trả lại những giá trị đáp ứng tiêu chí đã chỉ định . Cuối cùng, bạn có thể sử dụng reduce[] để thu thập các khóa đã lọc và giá trị của chúng vào một đối tượng mới chẳng hạn.

Bạn sẽ sử dụng gì để tìm kiếm một giá trị cụ thể trong một mảng?

Sử dụng bộ lọc nếu bạn muốn tìm tất cả các mục trong một mảng đáp ứng một điều kiện cụ thể. Sử dụng find nếu bạn muốn kiểm tra xem ít nhất một mục có đáp ứng một điều kiện cụ thể hay không. Sử dụng bao gồm nếu bạn muốn kiểm tra xem một mảng có chứa một giá trị cụ thể hay không. Sử dụng indexOf nếu bạn muốn tìm chỉ mục của một mục cụ thể trong một mảng.

Chủ Đề