Ce face Array.prototype.keys / values / entries
Cele trei metode returnează iteratori, folosiți de obicei cu for...of: keys() dă indicii (0, 1, 2…), values() dă elementele, iar entries() dă perechi [indice, element].
entries() este modul obișnuit de a avea și poziția în for...of. Un iterator poate fi parcurs o singură dată; pentru un tablou folosește [...tablou.keys()] sau Array.from.
Ce returnează
Un iterator (Array Iterator).
Exemple
Exemplul 1: Indice și valoare în for…of
const podium = ["Ana", "Radu", "Elena"];
for (const [pozitie, nume] of podium.entries()) {
console.log(`${pozitie + 1}. ${nume}`);
}
Rezultat
1. Ana
2. Radu
3. Elena
Exemplul 2: Indicii, inclusiv pentru găuri
const rar = ["a", , "c"];
console.log([...rar.keys()]);
console.log(Object.keys(rar));
console.log([...rar.values()]);
Rezultat
[ 0, 1, 2 ]
[ '0', '2' ]
[ 'a', undefined, 'c' ]
Greșeli frecvente
- Afișezi direct rezultatul:
console.log(tablou.keys())aratăObject [Array Iterator] {}. Desface iteratorul cu[...].
Comenzi înrudite
for...of: Parcurge pe rând elementele unui tablou, ale unui șir sau ale altei colecții.Object.entries: Transformă un obiect într-un tablou de perechi [cheie, valoare], ușor de parcurs.Iterator.from: Transformă orice iterabil sau iterator într-un iterator cu metodele map, filter, take, toArray.