Recorrer un objeto JSON en javascript

publicado por: Anonymous

Estoy un poco perdido de como recorrer el siguiente objeto:

    [{   
"0": 
    {
        "modelo": "E40JMHL",
        "nombre_empresa": "COMERCIAL DITEN LTDA.",
        "total": 1
    },
"1": 
    {
        "modelo": "F6CMHS",
        "nombre_empresa": "COMERCIAL DITEN LTDA.",
        "total": 2
    },
"2":    
    {
        "modelo": "F150FETX",
        "nombre_empresa": "COMERCIO LTDA",
        "total": 1
    },
"3":    
    {
        "modelo": "F20CMHS",
        "nombre_empresa": "COMERCIO LTDA",
        "total": 1
    },
"4":      
    {
        "modelo": "F25GMHL",
        "nombre_empresa": "COMERCIO LTDA",
        "total": 1
    }}]

Necesitaba volcar los datos de los modelos en otro array, los totales y la empresa. Por Ejemplo:

data_modelo = ['E40JMHL','F6CMHS','F150FETX','F20CMHS','F25GMHL'] ;

data_total = [1, 2, 1, 1, 1] ;


data_empresa = ['COMERCIAL DITEN LTDA.' , 'COMERCIO LTDA']

Estoy intentando con foreach pero no he logrado ir recorriendo uno por uno.
Agradecería sus comentarios.

solución

Una posible forma podría ser usando Object.keys() e iterar el objeto a partir de las propiedades 0, 1, 2 .. etc.

_x000D_

_x000D_

const obj = [{"0":{"modelo":"E40JMHL","nombre_empresa":"COMERCIAL DITEN LTDA.","total":1},"1":{"modelo":"F6CMHS","nombre_empresa":"COMERCIAL DITEN LTDA.","total":2},"2":{"modelo":"F150FETX","nombre_empresa":"COMERCIO LTDA","total":1},"3":{"modelo":"F20CMHS","nombre_empresa":"COMERCIO LTDA","total":1},"4":{"modelo":"F25GMHL","nombre_empresa":"COMERCIO LTDA","total":1}}];_x000D_
_x000D_
let data_modelo = [];_x000D_
_x000D_
let data_total = [];_x000D_
_x000D_
let data_empresa = [];_x000D_
_x000D_
Object.keys(obj[0]).forEach(e => {_x000D_
  data_modelo.push(obj[0][e].modelo);_x000D_
  data_total.push(obj[0][e].total);_x000D_
  data_empresa.push(obj[0][e].nombre_empresa);_x000D_
});_x000D_
_x000D_
console.log(data_modelo);_x000D_
console.log(data_total);_x000D_
console.log(data_empresa);

_x000D_

_x000D_

_x000D_

También puedes poner todo en un solo objeto, que quizá es mas conveniente, en ese caso se puede usar reduce()

_x000D_

_x000D_

const obj = [{"0":{"modelo":"E40JMHL","nombre_empresa":"COMERCIAL DITEN LTDA.","total":1},"1":{"modelo":"F6CMHS","nombre_empresa":"COMERCIAL DITEN LTDA.","total":2},"2":{"modelo":"F150FETX","nombre_empresa":"COMERCIO LTDA","total":1},"3":{"modelo":"F20CMHS","nombre_empresa":"COMERCIO LTDA","total":1},"4":{"modelo":"F25GMHL","nombre_empresa":"COMERCIO LTDA","total":1}}];_x000D_
_x000D_
_x000D_
const res = Object.keys(obj[0]).reduce((p,c) => {_x000D_
  p.data_modelo.push(obj[0][c].modelo);_x000D_
  p.data_total.push(obj[0][c].total);_x000D_
  p.data_empresa.push(obj[0][c].nombre_empresa);_x000D_
  return p;_x000D_
},{data_modelo:[],data_total:[],data_empresa:[]});_x000D_
_x000D_
console.log(res);

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *