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