Array.prototype.entries()

Baseline 已廣泛支援

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

entries() 方法是 Array 例項的一個方法,它會返回一個新的陣列迭代器物件,該物件包含陣列中每個索引的鍵值對。

試一試

const array = ["a", "b", "c"];

const iterator = array.entries();

console.log(iterator.next().value);
// Expected output: Array [0, "a"]

console.log(iterator.next().value);
// Expected output: Array [1, "b"]

語法

js
entries()

引數

無。

返回值

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

描述

當用於稀疏陣列時,entries() 方法會將空槽(empty slots)迭代為具有 `undefined` 值的元素。

entries() 方法是通用的。它只要求 `this` 值具有 `length` 屬性和整數鍵屬性。

示例

使用索引和元素進行迭代

js
const a = ["a", "b", "c"];

for (const [index, element] of a.entries()) {
  console.log(index, element);
}

// 0 'a'
// 1 'b'
// 2 'c'

使用 for...of 迴圈

js
const array = ["a", "b", "c"];
const arrayEntries = array.entries();

for (const element of arrayEntries) {
  console.log(element);
}

// [0, 'a']
// [1, 'b']
// [2, 'c']

迭代稀疏陣列

entries() 會將空槽迭代為 `undefined`。

js
for (const element of [, "a"].entries()) {
  console.log(element);
}
// [0, undefined]
// [1, 'a']

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

entries() 方法會讀取 `this` 的 `length` 屬性,然後訪問所有鍵為小於 `length` 的非負整數的屬性。

js
const arrayLike = {
  length: 3,
  0: "a",
  1: "b",
  2: "c",
  3: "d", // ignored by entries() since length is 3
};
for (const entry of Array.prototype.entries.call(arrayLike)) {
  console.log(entry);
}
// [ 0, 'a' ]
// [ 1, 'b' ]
// [ 2, 'c' ]

規範

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

瀏覽器相容性

另見