Lọc một giá trị 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 do hàm cung cấp thực hiện

  • jav

Mục lục

  • Phương thức lọc hoạt động như thế nào
  • Trả về giá trị nữ
  • Loại trừ mảng ban đầu
  • Đặt tên cho giá trị hiện tại
  • Sử dụng chức năng mũi tên
  • Xóa chỉ mục và dấu ngoặc đơn
  • Xóa dấu ngoặc và trả về từ khóa
  • Thí dụ
  • Tìm hiểu thêm

Đô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 lọc hoạt động như thế nào

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

Trả về giá trị nữ

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

Loại trừ mảng ban đầu

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'})

Đặt tên cho giá trị hiện tại

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'})

Sử dụng chức năng mũi tên

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'})

Xóa chỉ mục và dấu ngoặc đơn

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'})

Xóa dấu ngoặc và trả về từ khóa

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')

Thí dụ

Đ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

Bạn có thể bật một phần tử cụ thể từ mảng trong JavaScript không?

Mảng. nguyên mẫu. pop() Phương thức pop() xóa phần tử cuối cùng khỏi mảng và trả về phần tử đó. Phương thức này thay đổi độ dài của mảng.

Bộ lọc() có thể thực hiện chức năng cho các phần tử mảng không có giá trị không?

Phương thức filter() không thực thi hàm đối với các phần tử trống .