是否有单行执行以下操作
NSMutableArray *allpoints = [[NSMutableArray alloc] init];
for (NSMutableArray *arr in self.points)
[allpoints addObjectsFromArray:arr];
我有一个数组数组(self.points
),我将子数组中的所有对象连接成一个数组。
答案 0 :(得分:6)
NSArray *array1 = @[ @"a", @"b", @"c" ];
NSArray *array2 = @[ @"d", @"e", @"f" ];
NSArray *array3 = @[ array1, array2 ];
NSArray * flattenedArray = [array3 valueForKeyPath:@"@unionOfArrays.self"];
NSLog(@"flattenedArray: %@", flattenedArray);
输出:
flattenedArray :( 一个, b, C, d, E, F )
答案 1 :(得分:1)
没有办法将数组数组中的所有对象(例如,NSMutableArray
中的每个self.points
添加到另一个数组中而不进行迭代。
但是,您可以向NSArray
添加一个类别,以完全按照您现在所做的操作,然后稍后用一行调用它。
答案 2 :(得分:0)
如果您正在初始化阵列并同时添加对象,那么就有一个初始化器。
NSMutableArray *allpoints = [[NSMutableArray alloc] initWithArray:self.points];
如果已经定义了可变数组,并且只想将对象附加到末尾,则可以使用以下内容。
[allpoints addObjectsFromArray:self.points];
答案 3 :(得分:0)
我认为没有办法做到这一点。
NSMutableArray *allpoints = [[NSMutableArray alloc] initWithArray:self.points]
会给你一个数组的数组,但是没有单行解决方案。我建议写一个类别,为你做这个,这样你就可以轻松地重复使用它。