
Phương thức findIndex()
trả về chỉ số của phần tử đầu tiên trong một mảng thỏa mãn chức năng thử nghiệm được cung cấp. Nếu không có yếu tố nào thỏa mãn chức năng kiểm tra, -1 được trả về.findIndex()
method returns the index of the first element in an array that satisfies the provided testing function. If no elements satisfy the testing function, -1 is returned.
Xem Tắt
Thử nó
Xem thêm Phương thức find()
, trả về phần tử đầu tiên thỏa mãn chức năng thử nghiệm (thay vì chỉ mục của nó).
Bạn Đang Xem: Hướng dẫn findindex object javascript – đối tượng findindex javascript
Cú pháp
// Arrow function
findIndex((element) => { /* … */ } )
findIndex((element, index) => { /* … */ } )
findIndex((element, index, array) => { /* … */ } )
// Callback function
findIndex(callbackFn)
findIndex(callbackFn, thisArg)
// Inline callback function
findIndex(function(element) { /* … */ })
findIndex(function(element, index) { /* … */ })
findIndex(function(element, index, array){ /* … */ })
findIndex(function(element, index, array) { /* … */ }, thisArg)
Thông số
callbackFn
Một chức năng được sử dụng để kiểm tra các phần tử trong mảng.
Hàm được gọi với các đối số sau:
element
Phần tử hiện tại được xử lý trong mảng.
index
Chỉ số của phần tử hiện tại được xử lý trong mảng.
array
Mảng findIndex()
đã được kêu gọi.
Cuộc gọi lại phải trả về một giá trị sự thật để chỉ ra một yếu tố thích hợp đã được tìm thấy. Chỉ số của phần tử này sau đó được trả về bởi findIndex()
.
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
2 Tùy chọnOptional
Xem Thêm : 8 ký hiệu đơn vị của điện áp định mức là hay nhất, bạn nên biết
Đối tượng tùy chọn để sử dụng là
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
3 khi thực hiện callbackFn
.
Giá trị trả về
Chỉ số của phần tử đầu tiên trong mảng vượt qua bài kiểm tra. Nếu không,
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
5.
Sự mô tả
Phương thức findIndex()
thực thi hàm callbackFn
một lần cho mọi chỉ mục trong mảng, theo thứ tự tăng dần, cho đến khi nó tìm thấy một trong đó callbackFn
trả về giá trị sự thật.
Nếu một phần tử như vậy được tìm thấy, findIndex()
ngay lập tức trả về chỉ mục của phần tử. Nếu callbackFn
không bao giờ trả về giá trị sự thật (hoặc
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
1 của mảng là
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
2), findIndex()
trả về
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
5.
callbackFn
được gọi cho mọi chỉ mục của mảng, không chỉ các chỉ số có giá trị được gán. Các khe trống trong các mảng thưa thớt hoạt động giống như
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
6.
callbackFn
được gọi với ba đối số:
- Giá trị của phần tử
- Chỉ mục của phần tử
- Đối tượng mảng đang đi qua
Nếu một tham số
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
2 được truyền đến findIndex()
, nó sẽ được sử dụng làm
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
3 bên trong mỗi lần gọi của callbackFn
. Nếu nó không được cung cấp, thì
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
Xem Thêm : nct2020 là gì – Nghĩa của từ nct2020
6 được sử dụng.
Phạm vi của các phần tử được xử lý bởi findIndex()
được đặt trước khi gọi đầu tiên của callbackFn
. Các yếu tố được gán cho các chỉ mục đã được truy cập hoặc các chỉ mục bên ngoài phạm vi, sẽ không được truy cập bởi callbackFn
. callbackFn
sẽ không xử lý các yếu tố được nối với mảng sau khi cuộc gọi đến findIndex()
bắt đầu. Nếu một phần tử hiện có, không được biết đến của mảng được thay đổi bởi callbackFn
, giá trị của nó được chuyển cho callbackFn
sẽ là giá trị tại thời điểm findIndex()
truy cập chỉ mục của phần tử. Các yếu tố là findIndex()
1 vẫn được truy cập.
CẢNH BÁO: Sửa đổi đồng thời loại được mô tả trong đoạn trước thường xuyên dẫn đến mã khó hiểu và thường phải tránh (ngoại trừ trong các trường hợp đặc biệt). Concurrent modification of the kind described in the previous paragraph frequently leads to hard-to-understand code and is generally to be avoided (except in special cases).
Phương pháp findIndex()
là chung chung. Nó chỉ mong đợi giá trị
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
3 có thuộc tính
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
1 và các thuộc tính được khóa.
Ví dụ
Tìm chỉ mục của một số nguyên tố trong một mảng
Ví dụ sau trả về chỉ mục của phần tử đầu tiên trong mảng là số nguyên tố hoặc
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
5 nếu không có số nguyên tố.
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
Sử dụng FindIndex () trên các mảng thưa thớt
Bạn có thể tìm kiếm
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
6 trong một mảng thưa thớt và nhận chỉ mục của một khe trống.
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
Gọi FindIndex () trên các đối tượng không phải là
Phương thức findIndex()
đọc thuộc tính
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
1 của
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1, not found
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2 (array[2] is 7)
3 và sau đó truy cập vào từng chỉ mục số nguyên.
const arrayLike = {
length: 3,
0: 2,
1: 7.3,
2: 4,
};
console.log(
Array.prototype.findIndex.call(arrayLike, (x) => !Number.isInteger(x)),
); // 1
Thông số kỹ thuật
Đặc tả ngôn ngữ Ecmascript # sec-array.prototype.find Index
# sec-array.prototype.findindex
Tính tương thích của trình duyệt web
Bảng BCD chỉ tải trong trình duyệt
Xem thêm
Nguồn: https://quatangtiny.com
Danh mục: Blog