前提
名前だけの文字列があります。
それを一次元配列に変更しています。
実現したいこと
20個ままでは一次元配列のままで良いのですが 20個以上
の場合は多次元配列にしたいです。
20個以下の場合
[name01, name02,...name20]
20個以上の場合
[
[name01, name02, ...name20],
[name21, name22, ...name40]
]
20個単位ごとに2次元配列に追加していきたいです。
条件
ユーザー名は100個までしかは入りません
発生している問題・エラーメッセージ
二次元配列化できない
該当のソースコード
Swift
1【現状】 2// 初期化 3var name: String = "" 4// 20個以下の配列 5var array: [String] = [] 6// 20個以上の配列 7var twoDimensionalArray: [[String]] = [[]] 8 9// 20個以下 10if name.count <= 20 { 11for i in 0..< self.name.count { 12self.array.append(name) 13print("----------------------------") 14print("arrayは") 15print(self.array) 16print("----------------------------") 17} 18 19// 20個以上 20} else { 21// ここで20個ずつの2次元配列にしたい 22for i in 0..< self.name.count { 23self.array.append(name) 24} 25 26// 回数 27if( (self.array.count % 20) == 0 ){ 28// 何もしない 29let count: Int = (self.array.count%20) 30} else { 31// +1する 32let count: Int = (self.array.count%20)+1 33} 34 35// 21個以上40未満までのケース 36if count == 2 { 37let array01 = array[0..<20] 38let array02 = array[21..<40] 39twoDimensionalArray[0].append(array01) 40twoDimensionalArray[1].append(array02) 41 42// 41個以上60未満までのケース 43} else if count == 3 { 44let array01 = array[0..<20] 45let array02 = array[21..<40] 46let array03 = array[41..<60] 47self.twoDimensionalArray[0].append(array01) 48self.twoDimensionalArray[1].append(array02) 49self.twoDimensionalArray[2].append(array03) 50 51// 61個以上80未満までのケース 52} else if count == 4 { 53let array01 = array[0..<20] 54let array02 = array[21..<40] 55let array03 = array[41..<60] 56let array04 = array[61..<80] 57self.twoDimensionalArray[0].append(array01) 58self.twoDimensionalArray[1].append(array02) 59self.twoDimensionalArray[2].append(array03) 60self.twoDimensionalArray[3].append(array04) 61} 62 63// 81個以上100未満までのケース 64else if count == 5 { 65let array01 = array[0..<20] 66let array02 = array[21..<40] 67let array03 = array[41..<60] 68let array04 = array[61..<80] 69let array05 = array[81..<100] 70self.twoDimensionalArray[0].append(array01) 71self.twoDimensionalArray[1].append(array02) 72self.twoDimensionalArray[2].append(array03) 73self.twoDimensionalArray[3].append(array04) 74self.twoDimensionalArray[4].append(array05) 75} 76 77print("----------------------------------") 78print("twoDimensionalArrayは") 79print(twoDimensionalArray) 80print("----------------------------------") 81} 82
試したこと
・reduce
・append[添字]
配列から二次元配列へ20個ごとに区切って追加する方法が知りたいです。
初心者なのでお手柔らかにお願いいたします。
回答1件
あなたの回答
tips
プレビュー