我有一系列数组,用JSON格式填充对象。他们看起来像这样:
第1组
[
{ "name" : "John",
"age" : "31"
},
{ "name" : "Bob",
"age" : "33"
}
]
第2组
[
{ "name" : "Jim",
"age" : "46"
},
{ "name" : "Harry",
"age" : "23"
}
] // ... and so on ...
在Angular中,如何连接两个数组以形成数组数组?我猜它是group1.concat(group2)
,还是那样的?我不知道在哪里做,我会在控制器中这样做吗?
目前我有一个$ scope属性分配给每个变量,我是否会创建一个新的$ scope属性,它是每个属性的连接数组?
这就像是:
$scope.allGroups = []
$scope.allGroups = $scope.group1.concat($scope.group2)
// since 'allGroups', 'group1', and 'group2' have all been defined can I do...
allGroups = group1.concat(group2) // ...or does $scope need to be used each time?
我的目的是(使用必要的过滤器)能够对所有组进行ng-repeat,因为它们现在都将链接到一个$ scope变量。
我非常确定那些有错误的laiden,但我认为提供一些不好的代码比没有任何东西更好,只是因为我试图做的更明显。如果有更好的方法(我确信有),我全心全意。
提前致谢
答案 0 :(得分:2)
你是对的,array1.concat(array2)
是一个很好用的方法。
现在问题是,您需要group1
和group2
加入$scope
吗?你需要展示它们吗?
如果答案是否定的,那么您可以按照以下步骤操作:
$scope
如果您不显示变量,则无需将变量设置到$scope
。它将如下所示:
$scope.allGroups = group1.concat(group2)
否则,没有别的选择比你说的那样:
$scope.allGroups = $scope.group1.concat($scope.group2)
修改强>
如果您想要一个包含group1
和group2
数组的数组,而不仅仅是其内容,您只需使用push()
方法,如下所示:
$scope.allGroups = [];
$scope.allGroups.push(group1, group2);
答案 1 :(得分:1)
如果您希望能够从视图中访问连接数组,则必须在$scope
对象中附加连接数组,因此您必须使用
$scope.allGroups = $scope.group1.concat($scope.group2)
如果您var allGroups
没有附加到$scope
对象allGroups
将成为控制器功能的局部变量,并且只能通过闭包
答案 2 :(得分:1)
您可以使用concat()将一个数组与另一个数组连接起来。 concat()函数返回一个数组。
以下是代码:
$scope.a = [1,2];
$scope.b = [3,4];
$scope.c = $scope.a.concat($scope.b);