回答編集履歴

3

修正

2016/08/26 04:21

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,4 +1,4 @@
1
- 以下のようにすることで抽出、ソートできます、試してみてください。
1
+ `reduce`を使用してみました、以下のようにすることで抽出、ソートできます、試してみてください。
2
2
 
3
3
  ※ 2つの配列を一緒に作成しているので若干読みにくいかも、、、
4
4
 

2

修正

2016/08/26 04:21

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -24,15 +24,15 @@
24
24
 
25
25
 
26
26
 
27
- let dateStr = (str as NSString).substringToIndex(7)
27
+ let yearStr = (str as NSString).substringToIndex(7)
28
28
 
29
29
  let dayStr = (str as NSString).substringFromIndex(8)
30
30
 
31
31
 
32
32
 
33
- if !result1.contains(dateStr) {
33
+ if !result1.contains(yearStr) {
34
-
34
+
35
- result1 += [dateStr]
35
+ result1 += [yearStr]
36
36
 
37
37
 
38
38
 
@@ -40,6 +40,8 @@
40
40
 
41
41
  result2.append(array)
42
42
 
43
+
44
+
43
45
  } else {
44
46
 
45
47
  result2[result2.count - 1].append(dayStr)
@@ -82,20 +84,16 @@
82
84
 
83
85
  @IBOutlet weak var tableView: UITableView!
84
86
 
85
-
86
-
87
-
88
-
89
87
  var sectionTitleArray: [String] = []
90
88
 
89
+ var sectionDataArray: [[String]] = []
90
+
91
91
 
92
92
 
93
93
  // Date Array
94
94
 
95
95
  var dataArray = ["2016/08/26", "2016/08/26", "2016/08/26", "2016/08/01", "2016/07/27", "2016/05/26", "2016/05/25", "2015/02/21"]
96
96
 
97
- var sectionDataArray: [[String]] = []
98
-
99
97
 
100
98
 
101
99
  override func viewDidLoad() {
@@ -104,7 +102,7 @@
104
102
 
105
103
 
106
104
 
107
- let resultArray: ([String], [[String]]) = dataArray.reduce(([],[])) { (resultTuple, str) -> ([String], [[String]]) in
105
+ let resultArray = dataArray.reduce(([],[])) { (resultTuple, str) -> ([String], [[String]]) in
108
106
 
109
107
 
110
108
 
@@ -114,15 +112,15 @@
114
112
 
115
113
 
116
114
 
117
- let dateStr = (str as NSString).substringToIndex(7)
115
+ let yearStr = (str as NSString).substringToIndex(7)
118
116
 
119
117
  let dayStr = (str as NSString).substringFromIndex(8)
120
118
 
121
119
 
122
120
 
123
- if !result1.contains(dateStr) {
121
+ if !result1.contains(yearStr) {
124
-
122
+
125
- result1 += [dateStr]
123
+ result1 += [yearStr]
126
124
 
127
125
 
128
126
 
@@ -134,14 +132,10 @@
134
132
 
135
133
  } else {
136
134
 
137
-
138
-
139
135
  result2[result2.count - 1].append(dayStr)
140
136
 
141
137
  }
142
138
 
143
-
144
-
145
139
  return (result1, result2)
146
140
 
147
141
  }
@@ -164,10 +158,6 @@
164
158
 
165
159
 
166
160
 
167
-
168
-
169
-
170
-
171
161
  // MARK: - TableView Delegate & DataSource
172
162
 
173
163
 

1

修正

2016/08/26 04:18

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- var resultArray: ([String], [[String]]) = dataArray.reduce(([],[])) { (resultTuple, str) -> ([String], [[String]]) in
17
+ var resultArray = dataArray.reduce(([],[])) { (resultTuple, str) -> ([String], [[String]]) in
18
18
 
19
19
 
20
20