Array.prototype.keys()

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Array 例項的 keys() 方法會返回一個新的陣列迭代器物件,其中包含陣列中每個索引的鍵。

試一試

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

語法

js
keys()

引數

無。

返回值

一個新的可迭代迭代器物件

描述

稀疏陣列上使用時,keys() 方法會像這些空槽具有 undefined 值一樣進行迭代。

keys() 方法是通用的。它只期望 this 值具有 length 屬性和整數鍵屬性。

示例

在稀疏陣列上使用 keys()

與僅包含陣列中實際存在的鍵的Object.keys() 不同,keys() 迭代器不會忽略表示缺失屬性的空位。

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]

在非陣列物件上呼叫 keys()

keys() 方法讀取 thislength 屬性,然後生成 0 和 length - 1 之間的所有整數索引。實際上不會發生索引訪問。

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

規範

規範
ECMAScript® 2026 語言規範
# sec-array.prototype.keys

瀏覽器相容性

另見