Digamos que tengo un mapa con las claves:
const map = new Map([['a', 'Apple'], ['b', 'Banana']]) Quiero recorrer las claves del mapa ( 'a' , 'b' ).
Conozco estas formas de recorrer las teclas:
Map.prototype.forEach() map.forEach((_value, key) => { console.log(key) })Ventajas: Sencillo
Contras: tiene que ignorar el primer parámetro en la función - (_value, key) => en lugar de solo key => .
Map.prototype.keys() y luego Array.prototype.forEach() [...map.keys()].forEach(key => { console.log(key) }) Pros: la devolución de llamada puede ser key =>
Contras: [...map.keys()] . Puede ser confuso al leer el código y puede tener menos rendimiento.
for of bucle a través de Map.prototype[Symbol.iterator]() for (const [key] of map) console.log(key)Pros: Probablemente rápido. Fácil de leer.
Contras: no es una función de flecha (opinión de que forEach es mejor).
for of loop a través de Map.prototype.keys() for (const key of map.keys()) console.log(key)Muy similar al método anterior.
Así que quiero saber qué forma es la más eficaz.
Creé un JSBench con los métodos. Estos son los resultados de más rápido a más lento:
Map.prototype.forEach()Map.prototype.keys() y luego Array.prototype.forEach()for of loop a través de Map.prototype.keys()for of bucle a través de Map.prototype[Symbol.iterator]()