Javascript tìm một

Có nhiều phương thức khác nhau trong JavaScript mà bạn có thể sử dụng để tìm kiếm một mục trong một mảng. Phương pháp bạn chọn tùy thuộc vào trường hợp sử dụng cụ thể của bạn

Chẳng hạn, bạn có muốn lấy tất cả các mục trong một mảng đáp ứng một điều kiện cụ thể không?

Đối với tất cả các trường hợp sử dụng này, Mảng của JavaScript. phương pháp nguyên mẫu có bạn bảo hiểm. Trong bài viết này, chúng ta sẽ thảo luận về bốn phương pháp chúng ta có thể sử dụng để tìm kiếm một mục trong một mảng. Những phương pháp này là

  1. Lọc
  2. Tìm thấy
  3. Bao gồm
  4. Chỉ số

Hãy thảo luận về từng người trong số họ

Mảng. lọc[]

Chúng ta có thể sử dụng Mảng. phương thức filter[] để tìm các phần tử trong một mảng đáp ứng một điều kiện nhất định. Chẳng hạn, nếu chúng ta muốn lấy tất cả các mục trong một mảng các số lớn hơn 10, chúng ta có thể làm điều này

const array = [10, 11, 3, 20, 5];

const greaterThanTen = array.filter[element => element > 10];

console.log[greaterThanTen] //[11, 20]

Cú pháp sử dụng mảng. phương thức filter[] như sau

let newArray = array.filter[callback];

ở đâu

  • let newArray = array.filter[callback];
    9 là mảng mới được trả về
  • let newArray = array.filter[callback];
    0 là mảng mà phương thức lọc được gọi
  • let newArray = array.filter[callback];
    1 là hàm gọi lại được áp dụng cho từng phần tử của mảng

Nếu không có mục nào trong mảng đáp ứng điều kiện, một mảng trống sẽ được trả về. Bạn có thể đọc thêm về phương pháp này tại đây

Có những lúc chúng ta không cần tất cả các yếu tố đáp ứng một điều kiện nhất định. Chúng ta chỉ cần một phần tử phù hợp với điều kiện. Trong trường hợp đó, bạn cần phương thức find[]

Mảng. tìm thấy[]

Chúng tôi sử dụng Mảng. phương thức find[] để tìm phần tử đầu tiên đáp ứng một điều kiện nhất định. Cũng giống như phương thức lọc, nó nhận một hàm gọi lại làm đối số và trả về phần tử đầu tiên đáp ứng điều kiện gọi lại

Hãy sử dụng phương thức find trên mảng trong ví dụ trên

const array = [10, 11, 3, 20, 5];

const greaterThanTen = array.find[element => element > 10];

console.log[greaterThanTen]//11

Cú pháp của mảng. tìm[] là

let element = array.find[callback];

Hàm gọi lại là hàm được thực thi trên từng giá trị trong mảng và nhận ba đối số

  • let newArray = array.filter[callback];
    2 - phần tử được lặp trên [bắt buộc]
  • let newArray = array.filter[callback];
    3 - chỉ mục/vị trí của phần tử hiện tại [tùy chọn]
  • let newArray = array.filter[callback];
    0 - mảng mà
    let newArray = array.filter[callback];
    5 đã được gọi [không bắt buộc]

Tuy nhiên, lưu ý rằng nếu không có phần tử nào trong mảng đáp ứng điều kiện, nó sẽ trả về

let newArray = array.filter[callback];
6

Tuy nhiên, nếu bạn muốn kiểm tra xem một phần tử nào đó có trong một mảng hay không thì sao?

Mảng. bao gồm[]

Phương thức bao gồm [] xác định xem một mảng có bao gồm một giá trị nhất định hay không và trả về đúng hay sai khi thích hợp

Vì vậy, trong ví dụ trên, nếu chúng ta muốn kiểm tra xem 20 có phải là một trong các phần tử của mảng hay không, chúng ta có thể làm điều này

let newArray = array.filter[callback];
1

Bạn sẽ nhận thấy sự khác biệt giữa phương pháp này và các phương pháp khác mà chúng tôi đã xem xét. Phương thức này chấp nhận một giá trị thay vì gọi lại làm đối số. Đây là cú pháp cho phương thức bao gồm

let newArray = array.filter[callback];
2

Ở đâu

  • let newArray = array.filter[callback];
    7 là giá trị bạn đang kiểm tra trong mảng [bắt buộc] và
  • let newArray = array.filter[callback];
    8 là chỉ số hoặc vị trí trong mảng mà bạn muốn bắt đầu tìm kiếm phần tử từ đó [không bắt buộc]

Để có khái niệm về chỉ mục, hãy xem lại ví dụ của chúng tôi. Nếu chúng ta muốn kiểm tra xem mảng có chứa 10 ở các vị trí khác ngoài phần tử đầu tiên hay không, chúng ta có thể làm điều này

let newArray = array.filter[callback];
5

Mảng. Chỉ số[]

Phương thức indexOf[] trả về chỉ mục đầu tiên mà tại đó có thể tìm thấy một phần tử đã cho trong một mảng. Nó trả về -1 nếu phần tử không tồn tại trong mảng

Hãy quay lại ví dụ của chúng ta. Hãy tìm chỉ số của 3 trong mảng

let newArray = array.filter[callback];
6

Cú pháp của nó tương tự như cú pháp của phương thức

let newArray = array.filter[callback];
9

let newArray = array.filter[callback];
8

Ở đâu

  • let newArray = array.filter[callback];
    2 là phần tử bạn đang kiểm tra trong mảng [bắt buộc] và
  • let newArray = array.filter[callback];
    8 là chỉ số hoặc vị trí trong mảng mà bạn muốn bắt đầu tìm kiếm phần tử từ đó [không bắt buộc]

Điều quan trọng cần lưu ý là cả hai phương thức

let newArray = array.filter[callback];
9 và
const array = [10, 11, 3, 20, 5];

const greaterThanTen = array.find[element => element > 10];

console.log[greaterThanTen]//11
3 đều sử dụng đẳng thức nghiêm ngặt [ '===' ] để tìm kiếm mảng. Nếu các giá trị thuộc các loại khác nhau [ví dụ: '4' và 4], chúng sẽ trả về
const array = [10, 11, 3, 20, 5];

const greaterThanTen = array.find[element => element > 10];

console.log[greaterThanTen]//11
4 và
const array = [10, 11, 3, 20, 5];

const greaterThanTen = array.find[element => element > 10];

console.log[greaterThanTen]//11
5 tương ứng

Tóm lược

Với các phương thức mảng này, bạn không cần sử dụng vòng lặp for để tìm kiếm một mảng. Tùy thuộc vào những gì bạn cần, bạn có thể quyết định phương pháp nào phù hợp nhất cho trường hợp sử dụng của mình

Dưới đây là tóm tắt về thời điểm sử dụng từng phương pháp

  • Sử dụng
    const array = [10, 11, 3, 20, 5];
    
    const greaterThanTen = array.find[element => element > 10];
    
    console.log[greaterThanTen]//11
    6 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
    let newArray = array.filter[callback];
    5 nếu bạn muốn kiểm tra xem ít nhất một mặt hàng có đáp ứng một điều kiện cụ thể hay không
  • Sử dụng
    let newArray = array.filter[callback];
    9 nếu bạn muốn kiểm tra xem một mảng có chứa một giá trị cụ thể không
  • Sử dụng
    const array = [10, 11, 3, 20, 5];
    
    const greaterThanTen = array.find[element => element > 10];
    
    console.log[greaterThanTen]//11
    3 nếu bạn muốn tìm chỉ mục của một mục cụ thể trong một mảng

Bạn muốn được thông báo khi tôi xuất bản một bài viết mới?

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Sarah Chima Atuonwu

Tôi là một kỹ sư phần mềm quan tâm đến việc làm cho tất cả mọi người có thể truy cập web. Tôi thích chia sẻ kiến ​​thức nên tôi viết về những điều tôi học được và những điều tôi cần học

Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Làm cách nào để sử dụng find[] trong JS?

Tìm mảng JavaScript[] . Phương thức find[] thực thi một hàm cho từng phần tử mảng. Phương thức find[] trả về undefined nếu không tìm thấy phần tử nào. Phương thức find[] không thực thi hàm đối với phần tử rỗng. The find[] method returns the value of the first element that passes a test. The find[] method executes a function for each array element. The find[] method returns undefined if no elements are found. The find[] method does not execute the function for empty elements.

Làm cách nào để lấy một giá trị từ mảng trong JavaScript?

Để chỉ nhận các giá trị cụ thể trong một mảng đối tượng trong JavaScript, hãy sử dụng khái niệm bộ lọc[] .

Làm cách nào để viết tìm trong JavaScript?

Nếu bạn cần chỉ mục của phần tử được tìm thấy trong mảng, hãy sử dụng find Index[]
Nếu bạn cần tìm chỉ mục của một giá trị, hãy sử dụng indexOf[]. .
Nếu bạn cần tìm xem một giá trị có tồn tại trong một mảng hay không, hãy sử dụng bao gồm[]. .
Nếu bạn cần tìm xem có phần tử nào thỏa mãn chức năng kiểm tra được cung cấp hay không, hãy sử dụng some[]

Làm cách nào để sử dụng nhiều tìm kiếm trong JavaScript?

Để kiểm tra xem có tồn tại nhiều giá trị trong một mảng hay không. .
Sử dụng phương thức every[] để lặp qua mảng giá trị
Trên mỗi lần lặp, hãy sử dụng phương thức indexOf để kiểm tra xem giá trị có được chứa trong mảng khác không
Nếu tất cả các giá trị tồn tại trong mảng, mọi phương thức sẽ trả về true

Chủ Đề