Chúng tôi có thể lấy chỉ mục trong forEach JavaScript không?

Khi lặp qua một mảng trong JavaScript, đôi khi có thể hữu ích khi lấy chỉ mục của mọi mục trong mảng

Chúng tôi có thể lấy chỉ mục trong forEach JavaScript không?

Điều này là có thể với. forEach, hãy lấy một ví dụ để minh họa nó

const apps = ["Calculator", "Messaging", "Clock"];

apps.forEach((app, index) => {
console.log(app, index);
});

Đầu ra của mã này là

"Máy tính" 0

"Nhắn tin" 1

"Đồng hồ" 2

Lưu ý cách chỉ số bắt đầu từ 0 và đi hết quãng đường cho đến khi độ dài của mảng - 1 (apps.length - 1 ở đây là 2)

Bạn không chắc phương thức forEach hoạt động như thế nào?

Kịch bản cuộc sống thực

Tại sao index lại hữu ích?

Giả sử bạn có một danh sách các tùy chọn và muốn gắn thẻ chúng với Tùy chọn 1, Tùy chọn 2, v.v.

const options = ["Milk", "Cheese", "Water"];

let html = "
";
options.forEach((option, index) => {
html += `

Select option ${index + 1}: ${option}

`
;

});
html += `
`
;
console.log(html);

Kết quả của đoạn mã trên là

<div>
<p>Select option 1: Milkp>
<p>Select option 2: Cheesep>
<p>Select option 3: Waterp>
div>

Lưu ý cách chúng tôi đã thêm + 1 vào index vì chỉ mục dựa trên số không (bắt đầu từ số không)

thoát sớm

Một trường hợp sử dụng khác của việc sử dụng index là khi bạn muốn dừng forEach khi nó đạt đến một chỉ số nhất định

Lưu ý rằng bạn không thể thực sự dừng forEach nhưng bạn có thể làm cho nó bỏ qua phần thân của hàm. Đây là một ví dụ

Vòng lặp for-of là một vòng lặp dễ sử dụng đi kèm với JavaScript cho phép chúng ta lặp qua các mảng và các đối tượng có thể lặp lại một cách dễ dàng

Tuy nhiên, không có cách nào để lấy chỉ mục của phần tử được lặp trực tiếp với nó

Trong bài viết này, chúng ta sẽ xem cách lấy bộ đếm vòng lặp hoặc chỉ mục bằng vòng lặp for-of trong JavaScript

Mảng. nguyên mẫu. forEach

Một cách để lấy chỉ mục trong khi lặp qua một mảng là sử dụng phương thức forEach

Chúng tôi có thể chuyển một cuộc gọi lại với chỉ mục của mục được lặp qua trong tham số thứ 2

Vì vậy, chúng ta có thể viết

const arr = [565, 15, 642, 32];
arr.forEach((value, i) => {
console.log('%d: %s', i, value);
});

Chúng tôi gọi forEach với một cuộc gọi lại có value với giá trị trong arr được lặp lại thông qua

i có chỉ số là value

Và vì vậy chúng tôi nhận được

0: 565
1: 15
2: 642
3: 32
Mảng. nguyên mẫu. mục

Mảng JavaScript cũng có phương thức

0: 565
1: 15
2: 642
3: 32
1 để trả về một mảng các mảng có chỉ mục của mục và chính mục đó

Chẳng hạn, chúng ta có thể viết

const arr = [565, 15, 642, 32];
for (const [i, value] of arr.entries()) {
console.log('%d: %s', i, value);
}

Chúng tôi hủy cấu trúc chỉ mục và giá trị từ mục nhập mảng và sau đó chúng tôi ghi lại cả hai giá trị bằng nhật ký bảng điều khiển

Vì vậy, chúng tôi nhận được

0: 565
1: 15
2: 642
3: 32

kết quả là

Phần kết luận

Có một số cách chúng ta có thể sử dụng để lặp qua một mảng và truy cập chỉ mục cũng như giá trị của mục nhập trong mỗi lần lặp

Tôi có thể lấy chỉ mục từ forEach không?

Bạn có thể sử dụng cấu trúc foreach thông thường và có thể truy cập trực tiếp vào giá trị và chỉ mục , không phải với tư cách là thành viên của đối tượng và chỉ giữ cả hai trường trong phạm vi của đối tượng .

Chúng ta có thể lấy chỉ mục mảng bằng vòng lặp forEach không?

Giải thích. Không, chúng tôi không thể lấy chỉ mục mảng bằng cách sử dụng vòng lặp foreach vì nó không theo dõi chỉ mục, nó chỉ lặp lại mảng theo các bước đơn lẻ.

Làm cách nào để lấy chỉ mục của từng mục trong JavaScript mảng?

Mảng JavaScript findIndex() . Phương thức findIndex() trả về chỉ số (vị trí) của phần tử đầu tiên vượt qua bài kiểm tra. Phương thức findIndex() trả về -1 nếu không tìm thấy kết quả khớp.

Làm cách nào để lấy chỉ mục hiện tại của mảng trong JavaScript?

Để 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ỉ mục của lần xuất hiện đầu tiên của phần tử mà bạn muốn tìm hoặc -1 nếu phần tử không được tìm thấy.