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 May 2018.

Array 인스턴스의 keys() 메서드는 배열의 각 인덱스에 대한 키를 포함하는 새로운 배열 반복자 객체를 반환합니다.

시도해보기

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

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

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

구문

js
keys()

매개변수

없음.

반환 값

설명

희소 배열에 사용되는 경우, keys() 메서드는 빈 슬롯의 값이 undefined인 것처럼 반복합니다.

key() 메서드는 범용 메서드입니다. 본 메서드는 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

명세서

Specification
ECMAScript® 2025 Language Specification
# sec-array.prototype.keys

브라우저 호환성

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
keys

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

같이 보기