Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将一系列阵列合并为一个';家长';数组(AngularJS)_Arrays_Angularjs_Join_Multidimensional Array_Concat - Fatal编程技术网

Arrays 将一系列阵列合并为一个';家长';数组(AngularJS)

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

我有一系列数组,用JSON格式的对象填充。它们看起来像这样:

$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]等等?它将创建一个新的简单数组。请参见多维数组的编辑。如图所示