合并 AngularJS 中的数组数组
Merge an array of arrays in AngularJS
我有以下控制器,这是 Stack Overflow 上另一个 OP 的结果。
var getData = function() {
var swindon = $http.get('(url)/swi/10?expand=true'),
paddington = $http.get('(url)/pad/10?expand=true'),
reading = $http.get('(url)/rdg/10?expand=true');
$q.all([swindon,paddington,reading]).then(function(arrayOfResults) {
$scope.listOfServices = arrayOfResults;
console.log($scope.listOfServices);
});
};
getData();
结果是这样的
我现在想做的是将这三个数组连接成一个数组。这些数组在结构上与存储在 trainServices 数组中的记录完全相同
我尝试了一些类似
的方法
$scope.listOfServices = $scope.listOfServices.data.concat(data);
返回未定义
我可以在嵌套的 NG-REPEAT 中使用数组,但我需要从三个数组中过滤掉重复项,因此我需要将它们作为一个数组。数据来自实时提要,因此在数据到达应用程序之前我无法进行查询。
这就是我目前调用数组的方式
<tbody ng-repeat="item in listOfServices">
<tr ng-repeat="service in item.data.trainServices | customDelayFilter">
我还包含了 JSON JSON.stringify($scope.listOfServices)
的在线表示
不知道为什么顶层说 JSON..那实际上不是输出中的字符串
你可以试试:
$scope.listOfServices = [].concat(...arrayOfResults.map(item => item.data.trainServices));
它应该给你 concated trainServices 对象数组
arrayOfResults.map(item => item.data.trainServices)
此代码在我们的例子中 returns 一个包含三个 trainServices 数组的数组,使用 Array.prototype.map
函数
...arrayOfResults.map(item => item.data.trainServices)
此代码使用 spread
运算符,它使我们能够将数组数组传递给 Array.prototype.concat
函数,该函数合并这些对象数组
我有以下控制器,这是 Stack Overflow 上另一个 OP 的结果。
var getData = function() {
var swindon = $http.get('(url)/swi/10?expand=true'),
paddington = $http.get('(url)/pad/10?expand=true'),
reading = $http.get('(url)/rdg/10?expand=true');
$q.all([swindon,paddington,reading]).then(function(arrayOfResults) {
$scope.listOfServices = arrayOfResults;
console.log($scope.listOfServices);
});
};
getData();
结果是这样的
我现在想做的是将这三个数组连接成一个数组。这些数组在结构上与存储在 trainServices 数组中的记录完全相同
我尝试了一些类似
的方法$scope.listOfServices = $scope.listOfServices.data.concat(data);
返回未定义
我可以在嵌套的 NG-REPEAT 中使用数组,但我需要从三个数组中过滤掉重复项,因此我需要将它们作为一个数组。数据来自实时提要,因此在数据到达应用程序之前我无法进行查询。
这就是我目前调用数组的方式
<tbody ng-repeat="item in listOfServices">
<tr ng-repeat="service in item.data.trainServices | customDelayFilter">
我还包含了 JSON JSON.stringify($scope.listOfServices)
的在线表示不知道为什么顶层说 JSON..那实际上不是输出中的字符串
你可以试试:
$scope.listOfServices = [].concat(...arrayOfResults.map(item => item.data.trainServices));
它应该给你 concated trainServices 对象数组
arrayOfResults.map(item => item.data.trainServices)
此代码在我们的例子中 returns 一个包含三个 trainServices 数组的数组,使用 Array.prototype.map
函数
...arrayOfResults.map(item => item.data.trainServices)
此代码使用 spread
运算符,它使我们能够将数组数组传递给 Array.prototype.concat
函数,该函数合并这些对象数组