2016-07-20 11 views
1

以下のように配列を分割したいと思います。私は、データ収入を分割し、UITableViewでそれを提示したいこれらの3つの配列に分離することにより配列オブジェクトを2文字(または2次元配列)に分割する方法

let firstArray = ["Europe", "Europe", "America", "America"] 
let secondArray = ["France", "Italy", "USA", "Canada"] 
let thirdArray = ["Paris", "Rome", "Washington", "Ottawa"] 

の中へ

let arrayToSplit = ["Europe|#|France|#|Paris", "Europe|#|Italy|#|Rome", "America|#|USA|#|Washington", "America|#|Canada|#|Ottawa"] 

+1

'PS:2D配列は[] appropriate' =>が依存する場合あなたが本当にやりたいこと。 – Larme

+0

私は、同じ配列オブジェクトに格納されたバイナリ値の束を分離しようとしています。私が次にやるべきことは、これらの値を1つのタイトル、もう1つのサブタイトルとしてTableViewに提示することです。 –

+1

それから、辞書の配列(またはカスタムオブジェクトの配列)は、 'UITableView'データソースのための良い解決策かもしれません。 – Larme

答えて

1

ていない最善の解決策が、期待される結果(ヒントは、コードコメントである)を有する:

let arrayToSplit = ["Europe|#|France|#|Paris", "Europe|#|Italy|#|Rome", "America|#|USA|#|Washington", "America|#|Canada|#|Ottawa"] 
var firstArray = [String]() 
var secondArray = [String]() 
var thirdArray = [String]() 

for element in arrayToSplit { 

    // new array with substrings divided by "|#|" e.g. ["Europe", "Europe", "America", "America"] 
    let newArray = element.componentsSeparatedByString("|#|") 
    firstArray.append(newArray[0]) 
    secondArray.append(newArray[1]) 
    thirdArray.append(newArray[2]) 
} 

print("first array: \(firstArray)") // first array: ["Europe", "Europe", "America", "America"] 
print("second array: \(secondArray)") // second array: ["France", "Italy", "USA", "Canada"] 
print("third array: \(thirdArray)") // third array: ["Paris", "Rome", "Washington", "Ottawa"] 
1
let arrayToSplit = ["Europe|#|France|#|Paris", "Europe|#|Italy|#|Rome", "America|#|USA|#|Washington", "America|#|Canada|#|Ottawa"] 


    print(arrayToSplit) 


    let firstArray : NSMutableArray = [] 
    let secondArray : NSMutableArray = [] 
    let thirdArray : NSMutableArray = [] 

    for var i = 0; i < arrayToSplit.count; i++ 
    { 
     let str : String = arrayToSplit[i] as String 

     let ary = str.characters.split{$0 == "|"}.map(String.init) 

     firstArray.addObject(ary[0]) 
     secondArray.addObject(ary[2]) 
     thirdArray.addObject(ary[4]) 
    } 

    print(firstArray) 
    print(secondArray) 
    print(thirdArray) 
1
let arrayToSplit = ["Europe|#|France|#|Paris", "Europe|#|Italy|#|Rome", "America|#|USA|#|Washington", "America|#|Canada|#|Ottawa"] 

let arrayOfLists = arrayToSplit.map{ 
    $0.componentsSeparatedByString("|#|") 
} 

let columns = Array(0..<3).map{ i in 
    arrayOfLists.map{ list in list[i]} 
} 

print(columns) 
//[["Europe", "Europe", "America", "America"], ["France", "Italy", "USA", "Canada"], ["Paris", "Rome", "Washington", "Ottawa"]] 
+0

いいです。非常にコンパクトです。 – Hasya

関連する問題