Acceso al índice de elementos de la matriz ES6 dentro del bucle for-of
Podemos acceder a los elementos de la matriz usando un bucle for-of:
for (const j of [1, 2, 3, 4, 5]) {
console.log(j);
}
¿Cómo puedo modificar este código para acceder también al índice actual? Quiero lograr esto usando la sintaxis for-of, ni forEach ni for-in.
Usar Array.prototype.keys
:
for (const index of ["a", "b", "c", "d", "e"].keys()) {
console.log(index);
}
Si desea acceder tanto a la clave como al valor, puede usar Array.prototype.entries()
con desestructuración :
for (const [index, value] of ["a", "b", "c", "d", "e"].entries()) {
console.log(index, value);
}
Array#entries
devuelve el índice y el valor, si necesita ambos:
for (let [index, value] of array.entries()) {
}
En este mundo de nuevas y llamativas funciones nativas, a veces nos olvidamos de lo básico.
for (let i = 0; i < arr.length; i++) {
console.log('index:', i, 'element:', arr[i]);
}
Limpio, eficiente y puedes seguir break
el circuito. ¡Prima! ¡También puedes empezar desde el final e ir hacia atrás con i--
!
Nota adicional: si usa mucho el valor dentro del bucle, es posible que desee hacerlo const value = arr[i];
en la parte superior del bucle para obtener una referencia fácil y legible.