Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng phương thức mảng JavaScript indexOf () và lastIndexOf () để tìm vị trí của một phần tử trong một mảng
Giới thiệu về phương thức mảng JavaScript indexOf ()
Để tìm vị trí của một phần tử trong một mảng, bạn sử dụng phương thức indexOf (). Phương thức này trả về chỉ số của lần xuất hiện đầu tiên phần tử bạn muốn tìm hoặc -1 nếu phần tử không được tìm thấy.
Phần sau minh họa cú pháp của phương thức indexOf ().
Array.indexOf(searchElement, fromIndex)
Như được hiển thị ở trên, phương thức indexOf () chấp nhận hai đối số được đặt tên.
- Đối số searchElement là phần tử bạn muốn tìm trong mảng.
- FromIndex là một chỉ mục mảng mà tại đó hàm bắt đầu tìm kiếm.
Đối số fromIndex có thể là một số nguyên dương hoặc âm. Nếu đối số fromIndex là âm, phương thức indexOf () sẽ bắt đầu tìm kiếm ở độ dài của mảng cộng với fromIndex.
Trong trường hợp bạn bỏ qua đối số fromIndex, phương thức indexOf () sẽ bắt đầu tìm kiếm từ đầu chuỗi.
Lưu ý rằng phương thức indexOf () sử dụng thuật toán so sánh bình đẳng nghiêm ngặt tương tự như toán tử ba dấu bằng (===) khi so sánh searchElement với các phần tử trong mảng.
Ví dụ về phương thức mảng JavaScript indexOf ()
Giả sử, bạn có một điểm mảng bao gồm sáu số như sau:
// indexof tìm số vị trí phần tử của mảng
var scoresIndex = [10, 20, 30, 10, 40, 20];
console.log(scoresIndex.indexOf(20));
Và ví dụ sau sử dụng fromIndex () với các giá trị âm:
console.log(scores.indexOf(20,-1)); // 5 (fromIndex = 6+ (-1) = 5)
console.log(scores.indexOf(20,-5)); // 1 (fromIndex = 6+ (-5) = 1)
Giả sử rằng bạn có một mảng các đối tượng sau, trong đó mỗi đối tượng có hai thuộc tính: tên và tuổi.
var guests = [
{name: 'John Doe', age: 30},
{name: 'Lily Bush', age: 20},
{name: 'William Gate', age: 25}
];
Câu lệnh sau trả về -1 mặc dù phần tử đầu tiên của mảng khách và searchElement có cùng giá trị trong thuộc tính name và age. Điều này là do chúng là hai đối tượng khác nhau.
console.log(guests.indexOf({
name: 'John Doe',
age: 30
})); // -1
No comments:
Post a Comment