JavaScript For In

JavaScript For In

Contenido original de W3Schools


La instrucción for-in itera sobre todas las propiedades enumerables de un objeto que está codificado por cadenas.


El bucle For In

La instrucción JavaScript for in recorre las propiedades de un objeto:

Sintaxis

for (key in object) {
  // bloque de código a ejecutar
}

Ejemplo:

const person = {fname:"John", lname:"Doe", age:25};

let text = "";
for (let x in person) {
  text += person[x];
}

Ver ejemplo


Ejemplo explicado

  • El bucle for in itera sobre un objeto persona

  • Cada iteración devuelve una clave(x)

  • La clave se utiliza para acceder al valor de la clave.

  • El valor de la clave es persona[x]


For in sobre matrices

La instrucción JavaScript for in también puede recorrer las propiedades de una matriz:

Sintaxis

for (variable in array) {
  code
}

Ejemplo:

const numbers = [45, 4, 9, 16, 25];

let txt = "";
for (let x in numbers) {
  txt += numbers[x];
}

Ver ejemplo

No use for in en una matriz si el orden del índice es importante.

El orden del índice depende de la implementación y es posible que no se pueda acceder a los valores de la matriz en el orden esperado.

Es mejor utilizar un bucle for, un bucle for of, o Array.forEach() cuando el orden es importante.


Array.forEach()

El método forEach() llama a una función (una función callback) una vez para cada elemento de la matriz.

Ejemplo:

const numbers = [45, 4, 9, 16, 25];

let txt = "";
numbers.forEach(myFunction);

function myFunction(value, index, array) {
  txt += value;
}

Ver ejemplo

Tenga en cuenta que la función toma 3 argumentos:

  • El valor del item

  • El índice del item

  • La matriz por sí misma

El ejemplo anterior utiliza sólo el parámetro de valor. Se puede reescribir como:

Ejemplo:

const numbers = [45, 4, 9, 16, 25];

let txt = "";
numbers.forEach(myFunction);

function myFunction(value) {
  txt += value;
}

Ver ejemplo


W3Schools es el sitio de desarrolladores web más grande del mundo.

Did you find this article valuable?

Support Santos Romero by becoming a sponsor. Any amount is appreciated!