Array.prototype.keys()

keys() 메서드는 배열의 각 인덱스를 키 값으로 가지는 새로운 Array Iterator 객체를 반환합니다.

시도해보기

구문

    arr.keys()

반환 값

새로운 Array 반복기 객체.

설명

Sparse arrays 에 사용하면, keys() 메서드는 undefined 값이 있는 것처럼 빈 슬롯을 순회합니다.

keys() 메서드는 generic합니다. this 값에 정수를 가지는 length 속성만 있어야 합니다.

예제

Sparse Arrays에 keys() 사용하기

배열에 실제로 존재하는 키 값만을 포함하는 Object.keys() 와 달리, keys() 반복기는 누락된 속성이 나타나는 빈 공간을 무시하지 않습니다.

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

Calling keys() on non-array objects

keys() 메서드는 this 값에서 length 속성을 읽고 0과 length - 1 사이에 있는 모든 정수 인덱스를 생성합니다. 이 인덱스는 실제로 생기지 않습니다.

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

명세

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

브라우저 호환성

BCD tables only load in the browser

같이 보기