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];