I am trying to merge two array:
array 1
[["aaa","111"],["bbb","222"],["ccc","333"]]
array 2
[["ddd","444"],["eee","555"],["fff","666"]]
What I want to achieve is to have a single array with the values respecting the array positions such as:
merged array
[["aaa","111"],["ddd","444"],["bbb","222"],["eee","555"],["ccc","333"],["fff","666"]]
How could I do this using Swift 2
let arr1 = [["aaa","111"],["bbb","222"],["ccc","333"]]
let arr2 = [["ddd","444"],["eee","555"],["fff","666"]]
let arr3 = arr1 + arr2
print(arr3) // [["aaa", "111"], ["bbb", "222"], ["ccc", "333"], ["ddd", "444"], ["eee", "555"], ["fff", "666"]]
in you case, with specific requirements
let arr4 = zip(arr1, arr2).reduce([]) { (var arr, p:(Array<String>, Array<String>)) -> [[String]] in
arr.append(p.0)
arr.append(p.1)
return arr
}
print(arr4) // [["aaa", "111"], ["ddd", "444"], ["bbb", "222"], ["eee", "555"], ["ccc", "333"], ["fff", "666"]]
UPDATE in accordance with your needs mentioned in notes you can add the rest of values this way (please change let arr4 to var arr4 first!!!)
var i = arr4.count / 2
while i < arr1.count {
arr4.append(arr1[i++])
}
while i < arr2.count {
arr4.append(arr2[i++])
}
print(arr4)
this gives you
[["aaa", "111"], ["ddd", "444"], ["bbb", "222"], ["eee", "555"], ["ccc", "333"], ["fff", "666"], ["zzz", "755"]]
it should work, even though one of the arrays is empty