Phương thức indexOf
Phương thức indexOf thực hiện tìm kiếm một phần tử
trong mảng. Ở tham số đầu tiên,
chúng ta chỉ định phần tử cần tìm.
Phương thức trả về vị trí của phần tử đầu tiên tìm thấy,
hoặc -1 nếu không có phần tử đó.
Tham số thứ hai không bắt buộc của phương thức
thiết lập vị trí bắt đầu
tìm kiếm.
Cú pháp
mảng.indexOf(phần tử, [vị trí bắt đầu]);
Ví dụ
Hãy tìm vị trí của số 3 đầu tiên trong mảng:
let arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);
console.log(res);
Kết quả thực thi mã:
2
Ví dụ
Bây giờ giả sử phần tử cần kiểm tra không có trong mảng:
let arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);
console.log(res);
Kết quả thực thi mã:
-1
Ví dụ
Hãy bắt đầu tìm kiếm từ một vị trí được chỉ định:
let arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);
console.log(res);
Kết quả thực thi mã:
5
Lỗi thường gặp
Đôi khi phương thức được sử dụng để kiểm tra sự hiện diện của một phần tử trong mảng. Trong trường hợp này rất dễ mắc lỗi nếu thực hiện kiểm tra theo cách sau:
if (arr.indexOf(3)) {
console.log(true);
} else {
console.log(false);
}
Kiểm tra như vậy sẽ hoạt động đúng cho
tất cả các vị trí, ngoại trừ vị trí 0 - bởi vì
nó được hiểu là false.
Kiểm tra sự hiện diện của phần tử một cách chính xác nên làm như sau:
if (arr.indexOf(3) !== -1) {
console.log(true);
} else {
console.log(false);
}
Xem thêm
-
phương thức
includes,
kiểm tra sự hiện diện của phần tử trong mảng -
phương thức
lastIndexOf,
tìm kiếm phần tử từ cuối mảng -
phương thức
at,
trả về phần tử của mảng theo chỉ mục của nó -
phương thức
match,
tìm kiếm các kết quả khớp trong chuỗi -
phương thức
search,
thực hiện tìm kiếm