如何在angularjs中合并两个对象数组?

我想在angulajs中添加以下对象数组与现有的对象数组,以实现更多的function。

即,每次附加现有的AJAX响应。

我有一个变量, $scope.actions包含以下JSON数据,

  { "total": 13, "per_page": 2, "current_page": 1, "last_page": 7, "next_page_url": "http://invoice.local/activities/?page=2", "prev_page_url": null, "from": 1, "to": 2, "data": [ { "id": 2108, "action_type_id": 202, "user_id": 1 }, { "id": 2108, "action_type_id": 202, "user_id": 1 } ] } 

我想在每次这个变量时追加JSON响应。

  { "data": [ { "id": 2108, "action_type_id": 202, "user_id": 1 }, { "id": 2108, "action_type_id": 202, "user_id": 1 } ] } 

我试过$scope.actions.data.concat(data.data);

但它无法正常工作并收到以下错误消息

$scope.actions.data.concat is not a function

你可以使用angular.extend(dest, src1, src2,...);

在你的情况下,它将是:

 angular.extend($scope.actions.data, data); 

请参阅此处的文档

https://docs.angularjs.org/api/ng/function/angular.extend

否则,如果只从服务器获取新值,则可以执行以下操作

 for (var i=0; i 

这对我有用:

 $scope.array1 = $scope.array1.concat(array2) 

在你的情况下,它将是:

 $scope.actions.data = $scope.actions.data.concat(data) 
 $scope.actions.data.concat is not a function 

同样的问题,但我解决了问题

  $scope.actions.data = [].concat($scope.actions.data , data) 

简单

 var a=[{a:4}], b=[{b:5}] angular.merge(a,b) // [{a:4, b:5}] 

测试角度为1.4.1