Hàm Array findIndex() trong Javascript
Trong bài này chúng ta sẽ học cách sử dụng hàm array.findIndex() trong javascript, đây là hàm dùng để tìm vị trí đầu tiên của phần tử được tìm thấy thỏa điều kiện nào đó.
Hàm findIndex sẽ trả về key của phần tử đầu tiên trong mảng thỏa mãn được điều kiện kiểm tra (được truyền vào như một hàm).
1. Cú pháp hàm array findIndex trong javascript
Hàm findIndex sẽ lần lượt sử dụng các phần tử của mảng để thực hiện hàm kiểm tra cho đến khi có giá trị thỏa mãn và hàm kiểm tra trả về true. Khi đó, hàm find sẽ trả về khóa của phần tử thỏa mãn đó và bỏ qua không kiểm tra các phần tử còn lại.
Cú pháp của findIndex như sau:
Bài viết này được đăng tại [free tuts .net]
array.findIndex(function(currentValue, index, arr),thisValue)
Trong đó:
currentValue
- giá trị của phần tử hiện tại.index
- chỉ số của phần tử hiện tại.arr
- mảng mà phần tử hiện tại thuộc về.thisValue
- tham số không bắt buộc. Nếu được truyền vào thì thisValue sẽ được sử dụng làm giá trị this, Nếu không được truyền vào thì giá trị "this" là "undefined".
Lưu ý:
- Hàm findIndex không thực hiện hàm kiểm tra với các phần tử không có giá trị.
- Hàm findIndex sẽ không thay đổi mảng ban đầu.
Ví dụ: Trả về chỉ mục của phần tử đầu tiên trong mảng có giá trị lớn hơn 20.
const ages = [3, 10, 28, 20]; function checkAge(age) { return age > 20; } let age = ages.find(checkAge); console.log(age); // 2
Kết quả trả về là 2 tại vì điều kiện của hàm truyền vào là age > 20, tức là chỉ phần tử nào có giá trị lớn hơn 20 là thỏa. Như trong mảng ages thì vị trí của phần tử đầu tiên thỏa điều kiện đó là 28.
2. Một ví dụ về hàm findIndex trong javascript
Ví dụ: Sử dụng hàm findIndex()
để tìm kiếm vị trí của phần tử có điểm số nhỏ hơn 5 trong mảng các điểm số.
var scores = [9, 4, 8, 8]; document.getElementById("demo").innerHTML = scores; function checkScore(scores) { return scores <= 5; } function myFunction() { document.getElementById("demo").innerHTML = scores.findIndex(checkScore); }
Kết quả chắc chắn sẽ trả về 1, bởi vì phần tử thứ hai có giá trị là 5, thỏa điều kiện 4 <= 5.
Trên là cách sử dụng findIndex trong javascript. Nếu bạn muốn lấy giá trị của phần tử thỏa điều kiện thay vì chỉ mục thì hãy sử dụng hàm find nhé.