Acceso al índice de elementos de la matriz ES6 dentro del bucle for-of

Resuelto Abdennour TOUMI asked hace 9 años • 12 respuestas

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);
}
Expandir fragmento

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

Abdennour TOUMI avatar Dec 18 '15 12:12 Abdennour TOUMI
Aceptado

Usar Array.prototype.keys:

for (const index of ["a", "b", "c", "d", "e"].keys()) {
  console.log(index);
}
Expandir fragmento

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);
}
Expandir fragmento

Michał Perłakowski avatar Dec 18 '2015 05:12 Michał Perłakowski

Array#entriesdevuelve el índice y el valor, si necesita ambos:

for (let [index, value] of array.entries()) {

}
Felix Kling avatar Dec 18 '2015 06:12 Felix Kling

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

chris avatar Sep 26 '2018 00:09 chris