Estoy tratando de recorrer este objeto y modificar algunos valores, sin embargo, obtengo solo la clave cuando lo registro.
this.restProviderService.getMessages(this.gameService.getStepId(), this.gameService.teamId).subscribe(messages => { console.log(messages); for (var m in messages) { console.log(m); } });consola.log(mensajes)
[ { "id": "3", "chatId": "1_1", "user_id": "21", "userName": "batman", "msg": "banananananana", "createdAt": "1632507755" }, { "id": "2", "chatId": "1_1", "user_id": "31", "userName": "jennyg", "msg": "asdfasdfasdf", "createdAt": "1632507721" } ]Consola.log(m)
0 1Un bucle for in en JS te da la clave. lo que haces es
for (var m in messages) { var message = messages[m]; console.log(message); }o
for (var m of messages) { console.log(m); }Está buscando un bucle for...of .
En Javascript, un bucle for...in devolverá el índice en cada iteración. (0, 1, etc.)
Un bucle for...of devolverá el elemento en cada índice secuencial.
for (var m of messages) { console.log(m); //Will log each item in the array in order } También puede usar el método de matriz forEach :
messages.forEach((m, index) => { console.log(m); // Will print each object console.log(index); // 0, 1, 2 });También puede tener problemas porque está tratando con un "objeto similar a una matriz", que puede devolverse desde algunos métodos. Aquí hay algunas formas de convertirlo en una matriz habitual. Pero, TLDR:
let typicalArray = [...messages]; //Do stuff with typicalArray