Array.prototype.keys()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Phương thức keys() của các đối tượng Array trả về một đối tượng array iterator mới chứa các khóa (key) cho mỗi chỉ mục trong mảng.

Try it

const array = ["a", "b", "c"];
const iterator = array.keys();

for (const key of iterator) {
  console.log(key);
}

// Expected output: 0
// Expected output: 1
// Expected output: 2

Cú pháp

js
keys()

Tham số

Không có.

Giá trị trả về

Một đối tượng iterator có thể lặp mới.

Mô tả

Khi dùng trên mảng thưa, phương thức keys() lặp qua các ô trống như thể chúng có giá trị undefined.

Phương thức keys()phương thức tổng quát. Nó chỉ yêu cầu giá trị this có thuộc tính length và các thuộc tính có khóa là số nguyên.

Ví dụ

Sử dụng keys() trên mảng thưa

Không giống Object.keys(), chỉ bao gồm các khóa thực sự tồn tại trong mảng, iterator keys() không bỏ qua các lỗ hổng đại diện cho các thuộc tính bị thiếu.

js
const arr = ["a", , "c"];
const sparseKeys = Object.keys(arr);
const denseKeys = [...arr.keys()];
console.log(sparseKeys); // ['0', '2']
console.log(denseKeys); // [0, 1, 2]

Gọi keys() trên đối tượng không phải mảng

Phương thức keys() đọc thuộc tính length của this và sau đó sinh ra tất cả các chỉ mục nguyên nằm trong khoảng từ 0 đến length - 1. Không có truy cập chỉ mục thực sự nào xảy ra.

js
const arrayLike = {
  length: 3,
};
for (const entry of Array.prototype.keys.call(arrayLike)) {
  console.log(entry);
}
// 0
// 1
// 2

Thông số kỹ thuật

Thông số kỹ thuật
ECMAScript® 2027 Language Specification
# sec-array.prototype.keys

Khả năng tương thích với trình duyệt

Xem thêm