> Faqs > Recorrer todos los datos de un ngForm

Recorrer todos los datos de un ngForm

Hola,

tengo una funcion en Angular que recibe datos de un ngForm y los puedo mostrar mirando su .value

 guardarDatos( forma: NgForm ) {

    console.log(forma.value);

Pero no se como ir sacando los datos uno por uno, lo he intentado con un foreach y me da error

forma.value.forEach(element => { console.log(element) });

Lo podria hacer con un FOR si supiera la longitud total del array que me llega, pero creo que lo mejor es el foreach

Alguan idea de como hacerlo?

Gracias

Respuestas

Pues si forma.value es un objeto Javascript, con claves y valores, puedes hacer un recorrido con el bucle for...in, de esta forma:

const foo = {
  one: 'aaa',
  number: 888,
  more: 'yeah!',
}

for(let elem in foo){
  console.log(`El valor de la clave ${elem} es ${foo[elem]}`);
}

Para usar la función foreach, como estás intentado, debes tener un iterable o un array. Si es un objeto sería imposible. Pero también podrías usar forecha con otra opción, que es convertir el objeto en un mapa (Map de Javascript) y luego hacer el recorrido con un foreach, tal cual.

const mapa = new Map(Object.entries(foo));
mapa.forEach( elem => console.log(elem));

En este código primero construyes un mapa a partir de un objeto y en la siguiente línea hacemos el recorrido al mapa.

Miguel Angel
3310 147 216 17