How would I combine two arrays in Objective-C?

What is the Objective-C equivalent of the JavaScript concat() function?

Assuming that both objects are arrays, how would you combine them?


Solution 1:

NSArray's arrayByAddingObjectsFromArray: is more-or-less equivalent to JavaScript's .concat() method:

NSArray *newArray=[firstArray arrayByAddingObjectsFromArray:secondArray];

Note: If firstArray is nil, newArray will be nil. This can be fixed by using the following:

NSArray *newArray=firstArray?[firstArray arrayByAddingObjectsFromArray:secondArray]:[[NSArray alloc] initWithArray:secondArray];

If you want to strip-out duplicates:

NSArray *uniqueEntries = (NSArray *)[[NSSet setWithArray:newArray] allObjects];

Solution 2:

Here's a symmetric & simple way by just beginning with an empty array:

NSArray* newArray = @[];
newArray = [newArray arrayByAddingObjectsFromArray:firstArray];
newArray = [newArray arrayByAddingObjectsFromArray:secondArray];