Swiosift
Swiosift

Reputation: 143

How to replace the empty values "" on same index from another array

I have to string arrays as follows both arrays size (count) same but values of both arrays are not the same.

arrayAlpha = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"] 
          
arrayNume  = ["", "", "3", "4", "", "6", "", "", "9", ""] 

mixArray = [String]()

I want another Array called MixUPCArray which will have the values of both arrays as the same as the current index. First, it will load the UPC values for the positions of an empty string "" in the chosenProductUPCArray then keep the chosenProductUPCArray arrays string values on the as position as it is.

so the output will be like this

MixArray   = ["a", "b", "3", "4", "e", "6", "g", "h", "9", "j"]

Keep in mind that ArrayAlpha and ArrayNume size is always the same and just some empty values are coming in ArrayNume but ArrayAlpha always contains the full values

Please write the best solution for this in swift MixArray also same size as the both arrays.

Upvotes: 1

Views: 189

Answers (1)

Leo Dabus
Leo Dabus

Reputation: 236380

You can zimply zip both arrays and map the resulting tuples. If the second element is empty return the first otherwise return the second:

let arrayAlpha = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
let arrayNume  = ["", "", "3", "4", "", "6", "", "", "9", ""]

let mixArray = zip(arrayAlpha, arrayNume).map { $1.isEmpty ? $0 : $1 }

print(mixArray)  // ["a", "b", "3", "4", "e", "6", "g", "h", "9", "j"]

Upvotes: 5

Related Questions