Javascript tìm chỉ mục

Trong Javascript có nhiều cách để tìm kiếm phần tử trong Array. Cách đơn giản nhất là sử dụng vòng lặp. Nhưng với ES6+ có nhiều phương thức để lặp trong Array và tìm kiếm trong các phần từ dễ dàng hơn

Show

Dưới đây sẽ là những phương thức Array có thể sử dụng

  • Mảng. bao gồm
  • Mảng. tìm thấy
  • Mảng. Chỉ số
  • Mảng. lọc

bao gồm

const alligator = ["thick scales", 80, "4 foot tail", "rounded snout"];

alligator.includes("thick scales"); // returns true

Phương thức

arr.includes(valueToFind, [fromIndex]);
8 trả về giá trị
arr.includes(valueToFind, [fromIndex]);
9 là cách hoàn hảo được sử dụng để kiểm tra xem phần tử có tồn tại trong mảng hay không, giá trị trả về của hàm này sẽ là
Uncaught TypeError: thick scales is not a function
0 hoặc
Uncaught TypeError: thick scales is not a function
1. Cú pháp đơn giản như sau

arr.includes(valueToFind, [fromIndex]);

Bây giờ khi bạn thấy trong ví dụ trên, ta chỉ có một tham số - valueToFind ở dạng

Uncaught TypeError: thick scales is not a function
2. Tùy chọn từ
Uncaught TypeError: thick scales is not a function
3 là một số, cho biết chỉ số nào bạn muốn bắt đầu tìm kiếm (mặc định là 0, nên tìm kiếm toàn bộ phần tử trong mảng). Vì vậy, trong ví dụ trên, mục
Uncaught TypeError: thick scales is not a function
4 chỉ có số 0, nên sau đây sẽ là
Uncaught TypeError: thick scales is not a function
1.
Uncaught TypeError: thick scales is not a function
6 kể từ khi nó bắt đầu tìm kiếm từ chỉ số 1 trở đi

Có một vài điều quan trọng cần chú ý. Phương pháp ________ 18 này sử dụng so sánh rất nghiêm trọng. Điều đó có nghĩa là, từ ví dụ trên, sau đây sẽ trả về

Uncaught TypeError: thick scales is not a function
1.
Uncaught TypeError: thick scales is not a function
9 Điều đó bởi vì mặc dù 80 == '80' là
Uncaught TypeError: thick scales is not a function
0, 80 === '80' là
Uncaught TypeError: thick scales is not a function
1

tìm thấy

Phương pháp. find() other with. bao gồm () như thế nào?

Uncaught TypeError: thick scales is not a function

Bởi vì phương thức

arr.includes(valueToFind, [fromIndex]);
72 yêu cầu một
arr.includes(valueToFind, [fromIndex]);
73 được truyền vào. Vì phương thức
arr.includes(valueToFind, [fromIndex]);
72 không phải là cách sử dụng toán tử so sánh đơn giản như
arr.includes(valueToFind, [fromIndex]);
75. Thay vào đó, nó sẽ chuyển từng phần tử vào chức năng của bạn và kiểm tra rồi trả về giá trị
Uncaught TypeError: thick scales is not a function
0 hay
arr.includes(valueToFind, [fromIndex]);
77. Vì vậy, mặc dù điều này hoạt động.
arr.includes(valueToFind, [fromIndex]);
78, bạn có thể muốn đưa so sánh toán tử của riêng mình vào hàm để nó trả về bất cứ điều gì có liên quan

arr.includes(valueToFind, [fromIndex]);
7

Hàm đơn giản này trong phương thức

arr.includes(valueToFind, [fromIndex]);
72 chúng tôi xem xét từng phần tử của mảng, với
arr.includes(valueToFind, [fromIndex]);
60 của
arr.includes(valueToFind, [fromIndex]);
61, chúng tôi đã gán cho nó và dừng lại khi nó tìm thấy phần đầu tiên là đúng. Trong trường hợp
Uncaught TypeError: thick scales is not a function
0 có thuộc tính độ dài nhỏ hơn 12 (
arr.includes(valueToFind, [fromIndex]);
63 không có thuộc tính độ dài). Tất nhiên bạn có thể làm cho chức năng này phức tạp khi cần thiết, làm cho điều kiện thực tế của bạn đáp ứng nhu cầu của bạn

Trong ví dụ trên, ta chỉ sử dụng cuộc gọi lại với một tham số. Bạn cũng có thể bổ sung các tham số để tham khảo

arr.includes(valueToFind, [fromIndex]);
64 phần tử hiện tại. Một tham số khác có thể là
arr.includes(valueToFind, [fromIndex]);
65, nhưng tôi thấy điều này hiếm khi được sử dụng. Dưới đây là một ví dụ sử dụng
arr.includes(valueToFind, [fromIndex]);
64

arr.includes(valueToFind, [fromIndex]);
6

Có 3

arr.includes(valueToFind, [fromIndex]);
67 khác nhau đáp ứng điều kiện đầu tiên
arr.includes(valueToFind, [fromIndex]);
68. Nếu đây là điều kiện duy nhất, nó sẽ trả lại cái đầu tiên_______269. Nhưng sự khác biệt là, chỉ có một người có số chỉ là 2 và đó là
Uncaught TypeError: thick scales is not a function
70

Nói về

Uncaught TypeError: thick scales is not a function
71, một mảng tương tự phương thức là. tìm Index (). Phương thức này cũng nhận được một hàm, nhưng nếu bạn có thể đoán được, nó chỉ trả về số phần tử phù hợp thay vì phần tử chính đó

Chỉ số

Uncaught TypeError: thick scales is not a function
7

Giống như phương thức

arr.includes(valueToFind, [fromIndex]);
8,
Uncaught TypeError: thick scales is not a function
73 sử dụng so sánh nghiêm ngặt, không phải là hàm như chúng ta đã thấy với phương thức
Uncaught TypeError: thick scales is not a function
74. Nhưng không giống với
Uncaught TypeError: thick scales is not a function
75, nó trả về
arr.includes(valueToFind, [fromIndex]);
64 của phần tử, thay vì
arr.includes(valueToFind, [fromIndex]);
9. Bạn cũng có thể chỉ ra
arr.includes(valueToFind, [fromIndex]);
64 any trong mảng để bắt đầu tìm kiếm

Mình thấy

Uncaught TypeError: thick scales is not a function
79 rất hữu ích. Nó nhanh chóng và dễ dàng, bạn có thể biết phần tử nằm trong mảng và bạn có thể biết phần tử có tồn tại hay không. Làm thế nào để nó cho bạn biết nếu các yếu tố tồn tại?

Uncaught TypeError: thick scales is not a function
8

Và như bạn có thể thấy, mặc dù chúng ta có thể lấy các phương thức

Uncaught TypeError: thick scales is not a function
81 hoặc
Uncaught TypeError: thick scales is not a function
82 để cung cấp cho chúng ta cùng một thông tin, nhưng điều này ít hơn rất nhiều để viết. Chúng tôi không phải viết ra một hàm để so sánh, bởi vì nó đã nằm trong phương thức
Uncaught TypeError: thick scales is not a function
83

Bây giờ, giống như những cái khác,

Uncaught TypeError: thick scales is not a function
73 cũng trả về
arr.includes(valueToFind, [fromIndex]);
64 của phần tử khớp đầu tiên mà nó tìm thấy.
Uncaught TypeError: thick scales is not a function
86 cung cấp cho chúng ta một phương thức thay thế
Uncaught TypeError: thick scales is not a function
87. Như bạn có thể đoán là điều này thực hiện tương tự như
Uncaught TypeError: thick scales is not a function
79 nhưng bắt đầu từ
arr.includes(valueToFind, [fromIndex]);
64 cuối cùng của mảng và hoạt động ngược. Bạn cũng có thể chỉ định một tham số thứ hai, nhưng hãy nhớ các tham số không thay đổi, chỉ vì bạn đang sử dụng một phương thức khác

arr.includes(valueToFind, [fromIndex]);
9

Thưởng. lọc

Uncaught TypeError: thick scales is not a function
0

Phương thức

arr.includes(valueToFind, [fromIndex]);
90 giống như phương thức
Uncaught TypeError: thick scales is not a function
81, trong đó nó yêu cầu một
arr.includes(valueToFind, [fromIndex]);
73 được truyền tải và một điều kiện cho những gì sẽ được trả lại. Sự khác biệt chính là
arr.includes(valueToFind, [fromIndex]);
90 luôn trả về một
arr.includes(valueToFind, [fromIndex]);
65, ngay cả khi chỉ có một phần tử phù hợp. Nhưng nó sẽ trả về tất cả các phần tử đối sánh, trong khi
Uncaught TypeError: thick scales is not a function
81 chỉ trả về kết quả đầu tiên