Tengo el siguiente código js https://repl.it/N0xy/0
Estoy tratando de insertar algunos objetos en uno existente usando algunas funciones:

mylist.push(createMyObject(item.name, item.school, item.teacher))

El resultado contiene:

 { result: true, count: 1, items: [ [ [Object], [Object] ] ] }

En lugar de :

     { result: true, count: 1, items: [ { name: 'Jacky', school: 'high', teacher: 'good' },
  { name: 'Tom', school: 'college', teacher: 'bad' } ] }

¿Cómo puedo arreglar esto? Gracias

-2
moaningalways 30 oct. 2017 a las 16:25

3 respuestas

La mejor respuesta

Olvidó hacer JSON.stringify(obj) en la última declaración. Todo lo demás parece estar bien.

Es posible que desee cambiar la segunda última línea a:

obj.items = create(); también.

O tal vez obj.items = obj.items.concat(create());

0
Parijat Purohit 30 oct. 2017 a las 13:38

Empujó una matriz a obj.items en lugar de los elementos separados. create() devuelve una matriz.

Prueba esto:

create().forEach(function(item) {
   obj.items.push(item);
});

O

let createdItems = create();
for(item of createdItems) {
    obj.items.push(item);
}
0
Erik 30 oct. 2017 a las 13:39

En su console.log al final, envuelva el obj en una llamada a JSON.stringify así:

console.log("print my obj: ",obj);
-1
Jarid Wade 30 oct. 2017 a las 13:31