user82383
user82383

Reputation: 899

Reorganizing an array into a multiple dimension array

I have an NSArray containing objects

[ObjA, ObjB, ObjC, ObjD, ObjE ...]

I'd like to create a 3xN dimension array like so:

[ObjA, ObjB, ObjC]

[ObjD, ObjE, ObjF]

[...]

I just can't seem to wrap my ahead around my for loop.

Upvotes: 0

Views: 39

Answers (1)

warrenm
warrenm

Reputation: 31782

const NSInteger objsPerGroup = 3;
NSArray *flatArray = @[objA, objB, objC, objD, objE, objF];
NSMutableArray *groupedArray = [NSMutableArray arrayWithCapacity:([flatArray count] / objsPerGroup)];
NSInteger index = 0;
NSMutableArray *currentGroup = nil;
for (id obj in flatArray)
{
    if (index % objsPerGroup == 0)
    {
        currentGroup = [NSMutableArray arrayWithCapacity:objsPerGroup];
        [groupedArray addObject:currentGroup];
    }
    [currentGroup addObject:obj];

    ++index;
}

Upvotes: 2

Related Questions