如何在Angular中连接两个对象?

Vel*_*Vel 2 json object angular

如何在角度2中加入对象?

对象响应1

0:Object
1:Object
2:Object
3:Object
Run Code Online (Sandbox Code Playgroud)

对象响应2

0:Object
1:Object
2:Object
3:Object
Run Code Online (Sandbox Code Playgroud)

myComponent组件

resultdata :any=Array;

 fooddrinks_data_func(Defaultparams){

    return this.CitiesService.getresult(Defaultparams).subscribe(data => {                
         this.resultdata = this.resultdata.join(data.categorylistvalues);

    });  
}
Run Code Online (Sandbox Code Playgroud)

我得到这个错误。

error_handler.js:59原始堆栈: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订阅者._next @ Subscriber.js:125 Subscriber.next @ Subscriber.js:89 Subject.next @ Subject.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不是一个功能

最终结果应该是这样的。

this.resultdata

0:Object
1:Object
2:Object
3:Object
4:Object
5:Object
6:Object
7:Object
Run Code Online (Sandbox Code Playgroud)

Mik*_*der 5

我认为您正在寻找object.assign()

Object.assign()方法用于将所有可枚举的自身属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

var obj1 = { a: 1 };
var obj2 = { b: 2 };

var merged = Object.assign(obj1, obj2);

console.log(merged); // { a: 1, b: 2 }
Run Code Online (Sandbox Code Playgroud)

  • 还值得注意的是TypeScript 2.1支持实验性的[对象传播语法](https://github.com/tc39/proposal-object-rest-spread),其功能与@AndrewReborn建议的代码相同。让合并= {... obj1,... obj2};` (4认同)
  • 出于完整性考虑,Object.assign将第一个参数作为目标:这意味着obj1和merged将具有相同的值。为了避免这种情况,将Object.assign第一个参数设置为{}总是一个更好的做法,这样就不会修改任何对象,并且该方法的返回值将只存储在一个新变量中(合并为@Mike示例)。var merged = Object.assign({},obj1,obj2); (2认同)