¿Cómo unirse al objeto en angular 2?
respuesta de objeto 1
0:Object 1:Object 2:Object 3:Objectrespuesta de objeto 2
0:Object 1:Object 2:Object 3:Objectcomponente myComponent
resultdata :any=Array; fooddrinks_data_func(Defaultparams){ return this.CitiesService.getresult(Defaultparams).subscribe(data => { this.resultdata = this.resultdata.join(data.categorylistvalues); }); }me sale este error
error_handler.js:59 STACKTRACE ORIGINAL: ErrorHandler.handleError @ error_handler.js:59 next @ application_ref.js:348 schedulerFn @ async.js:93 SafeSubscriber.__tryOrUnsub @ Subscriber.js:234 SafeSubscriber.next @ Subscriber.js:183 Suscriptor ._next @ Subscriber.js:125 Subscriber.next @ Subscriber.js:89 Asunto.siguiente @ Asunto.js:55 EventEmitter.emit @ async.js:79 NgZone.triggerError @ ng_zone.js:333 onHandleError @ ng_zone.js: 294 webpackJsonp.1416.ZoneDelegate.handleError @ zone.js:338 webpackJsonp.1416.Zone.runTask @ zone.js:169 ZoneTask.invoke @ zone.js:420 error_handler.js:60 TypeError: _this.resultdata.join no es Una función
el resultado final debería ser así.
this.resultdata
0:Object 1:Object 2:Object 3:Object 4:Object 5:Object 6:Object 7:ObjectCreo que estás buscando object.assign() ?
El método Object.assign() se utiliza para copiar los valores de todas las propiedades propias enumerables de uno o más objetos de origen a un objeto de destino. Devolverá el objeto de destino.
var obj1 = { a: 1 }; var obj2 = { b: 2 }; var merged = Object.assign(obj1, obj2); console.log(merged); // { a: 1, b: 2 }Al leer tu código dos detalles me llamaron la atención:
Así que esta es mi sugerencia de cambio de código.
resultdata :Array<any> = []; fooddrinks_data_func(Defaultparams){ return this.CitiesService.getresult(Defaultparams) .map((response) => response.json()) .subscribe(data => { this.resultdata = this.resultdata.join(data.categorylistvalues); }); }La respuesta de @Mike funciona bien.
var obj1 = { a: 1 }; var obj2 = { b: 2 }; var merged = Object.assign(obj1, obj2); console.log(merged); // { a: 1, b: 2 }pero después de Object.assign obj1 también se vuelve igual que fusionado
console.log(obj1); // { a: 1, b: 2 }Puede usar lodash para usar una solución de revestimiento
var obj1 = {a :1}; var obj2 = { b: 2}; _.merge(obj1, obj2);El resultado será ---->
{ "a": 1, "b": 2 }Además de eso, perderá la clave si ambos objetos tienen el mismo nombre de clave.