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à
- Lọc
- Tìm thấy
- Bao gồm
- 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
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ọilet 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ảnglet newArray = array.filter[callback];
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ố
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]let newArray = array.filter[callback];
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];
6Tuy 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];
1Bạ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
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]let newArray = array.filter[callback];
Để 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];
5Mả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];
6Cú pháp của nó tương tự như cú pháp của phương thức
let newArray = array.filter[callback];
9let newArray = array.filter[callback];
8Ở đâu
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]let newArray = array.filter[callback];
Đ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 ứngTó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
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ểconst array = [10, 11, 3, 20, 5]; const greaterThanTen = array.find[element => element > 10]; console.log[greaterThanTen]//11
- Sử dụng
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ônglet newArray = array.filter[callback];
- Sử dụng
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ônglet newArray = array.filter[callback];
- Sử dụng
3 nếu bạn muốn tìm chỉ mục của một mục cụ thể trong một mảngconst array = [10, 11, 3, 20, 5]; const greaterThanTen = array.find[element => element > 10]; console.log[greaterThanTen]//11
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
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