Arrays 将一系列阵列合并为一个';家长';数组(AngularJS)
我有一系列数组,用JSON格式的对象填充。它们看起来像这样:Arrays 将一系列阵列合并为一个';家长';数组(AngularJS),arrays,angularjs,join,multidimensional-array,concat,Arrays,Angularjs,Join,Multidimensional Array,Concat,我有一系列数组,用JSON格式的对象填充。它们看起来像这样: $scope.allGroups = group1.concat(group2) 第一组 [ { "name" : "John", "age" : "31" }, { "name" : "Bob", "age" : "33" } ] 第2组 [ { "name" : "Jim", "age" : "46" }, { "na
$scope.allGroups = group1.concat(group2)
第一组
[
{ "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重复,因为它们现在都将链接到一个$scope变量
我很确定这是错误的,但我认为提供一些糟糕的代码比什么都不提供要好,只是为了更清楚地知道我在做什么。如果有更好的方法(我肯定有),我会洗耳恭听
提前感谢如果您希望能够从视图中访问连接的数组,您必须将连接的数组附加到
$scope
对象中,因此您必须使用
$scope.allGroups = $scope.group1.concat($scope.group2)
如果您将
var allGroups
保留为未附加到$scope
对象allGroups
将是控制器函数的局部变量,并且仅通过闭包可用如果您希望能够从视图访问连接的数组,则必须在$scope
对象,因此必须使用
$scope.allGroups = $scope.group1.concat($scope.group2)
如果您将
var allGroups
保留为未附加到$scope
对象allGroups
将是控制器函数的局部变量,并且只能通过闭包使用array1。concat(array2)
是一种很好的使用方法
现在的问题是,您是否需要group1
和group2
在$scope
上?您需要显示它们吗
如果答案是否定的,那么您可以简单地执行以下操作:
$scope.allGroups = [];
$scope.allGroups.push(group1, group2);
- 恢复两个数组并将它们存储在2个“私有”变量中
- 将它们合并到
$scope
$scope
中设置变量。然后它会像这样:
$scope.allGroups = group1.concat(group2)
否则,别无选择,只能像你说的那样:
$scope.allGroups = $scope.group1.concat($scope.group2)
编辑
如果您想要包含group1
和group2
数组的数组,而不仅仅是它们的内容,只需使用push()
方法,如下所示:
$scope.allGroups = [];
$scope.allGroups.push(group1, group2);
没错,
array1.concat(array2)
是一种很好的使用方法
现在的问题是,您是否需要group1
和group2
在$scope
上?您需要显示它们吗
如果答案是否定的,那么您可以简单地执行以下操作:
$scope.allGroups = [];
$scope.allGroups.push(group1, group2);
- 恢复两个数组并将它们存储在2个“私有”变量中
- 将它们合并到
$scope
$scope
中设置变量。然后它会像这样:
$scope.allGroups = group1.concat(group2)
否则,别无选择,只能像你说的那样:
$scope.allGroups = $scope.group1.concat($scope.group2)
编辑
如果您想要包含group1
和group2
数组的数组,而不仅仅是它们的内容,只需使用push()
方法,如下所示:
$scope.allGroups = [];
$scope.allGroups.push(group1, group2);
可以使用concat()将一个数组与另一个数组连接起来。
函数的作用是:返回一个数组
代码如下:
$scope.a = [1,2];
$scope.b = [3,4];
$scope.c = $scope.a.concat($scope.b);
可以使用concat()将一个数组与另一个数组连接起来。
函数的作用是:返回一个数组
代码如下:
$scope.a = [1,2];
$scope.b = [3,4];
$scope.c = $scope.a.concat($scope.b);
您希望得到怎样的结果?是否希望最终得到一个包含John、Bob、Jim和Harry的数组?这与数组的数组不同。很好。将其作为一个单一的对象数组是很有用的,但我也希望将其作为一个数组数组,因此每个“组”都是这样组织的,而不仅仅是一个“人”数组,如果这有意义的话。简言之,我想知道如何两者兼得。您希望得到怎样的结果?是否希望最终得到一个包含John、Bob、Jim和Harry的数组?这与数组的数组不同。很好。将其作为一个单一的对象数组是很有用的,但我也希望将其作为一个数组数组,因此每个“组”都是这样组织的,而不仅仅是一个“人”数组,如果这有意义的话。简言之,我想知道如何将两者结合起来。当然,在$scope.allGroups=group1.concat(group2)的情况下,allGroups附加到$scope对象将使其可见。。。group1和group2不需要附加,因为它们在新变量中…?不,它们不需要附加,因为
concat
函数创建了一个新对象(与$scope.allGroups相关联的对象),因此附加到您的作用域。那么,array1.concat(array2)是否会输出一个简单的数组,其中填充了对象?有没有办法让“allGroups”数组成为一个多维数组,里面填充[array1]、[array2]等等?它将创建一个新的简单数组。有关多维数组,请参见我的编辑。当然,在$scope.allGroups=group1.concat(group2)的情况下,allGroups附加到$scope对象的事实将使其可见。。。group1和group2不需要附加,因为它们在新变量中…?不,它们不需要附加,因为concat
函数创建了一个新对象(与$scope.allGroups相关联的对象),因此附加到您的作用域。那么,array1.concat(array2)是否会输出一个简单的数组,其中填充了对象?有没有办法让“allGroups”数组成为一个多维数组,里面填充[array1]、[array2]等等?它将创建一个新的简单数组。请参见多维数组的编辑。如图所示