Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.

View in English Always switch to English

Array.prototype.keys()

Baseline
Ampliamente disponible

Esta característica está consolidada y funciona en muchos dispositivos y versiones de navegador. Está disponible en todos los navegadores desde julio de 2015.

El método keys() de las instancias de Array devuelve un nuevo objeto iterador de arreglo que contiene las claves de cada índice del arreglo.

Pruébalo

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

Sintaxis

js
keys()

Parámetros

Ninguno.

Valor de retorno

Un nuevo objeto iterador iterable.

Descripción

Cuando se usa en arreglos dispersos, el método keys() itera las ranuras vacías como si tuvieran el valor undefined.

El método keys() es genérico. Solo espera que el valor de this tenga una propiedad length y propiedades con claves enteras.

Ejemplos

Usar keys() en arreglos dispersos

A diferencia de Object.keys(), que solo incluye las claves que realmente existen en el arreglo, el iterador keys() no ignora los huecos que representan propiedades faltantes.

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]

Llamar a keys() en objetos que no son arreglos

El método keys() lee la propiedad length de this y luego produce todos los índices enteros entre 0 y length - 1. En realidad no se accede a ningún índice.

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

Especificaciones

Especificación
ECMAScript® 2027 Language Specification
# sec-array.prototype.keys

Compatibilidad con navegadores

Véase también