質問編集履歴

2

修正の追記

2017/07/19 07:31

投稿

bouyomisan
bouyomisan

スコア87

test CHANGED
File without changes
test CHANGED
@@ -213,3 +213,55 @@
213
213
  #"現在の階層は3"
214
214
 
215
215
  ```
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+ ====再追記
224
+
225
+ ```ruby
226
+
227
+ pry(main)> load 'sample.rb'
228
+
229
+ [1, 2]
230
+
231
+ 1
232
+
233
+ 2
234
+
235
+ "現在の階層は1"
236
+
237
+ [3, 4, 5]
238
+
239
+ 3
240
+
241
+ 4
242
+
243
+ 5
244
+
245
+ "現在の階層は2"
246
+
247
+ [[6, 7], [8]]
248
+
249
+ [6, 7]
250
+
251
+ 6
252
+
253
+ 7
254
+
255
+ "現在の階層は3"
256
+
257
+ [8]
258
+
259
+ 8
260
+
261
+ "現在の階層は4"
262
+
263
+ "現在の階層は3"
264
+
265
+
266
+
267
+ ```

1

結果を訂正

2017/07/19 07:31

投稿

bouyomisan
bouyomisan

スコア87

test CHANGED
File without changes
test CHANGED
@@ -89,3 +89,127 @@
89
89
 
90
90
 
91
91
  処理の間に count という変数を入れて、 each の前後に count+= 1 として見ましたが、それだと数字がリセットされませんでした。
92
+
93
+
94
+
95
+
96
+
97
+ ===========追記
98
+
99
+
100
+
101
+ 回答ありがとうございます。
102
+
103
+ 教えていただいた方法を試して見ましたが、ダメでした。。
104
+
105
+ どんどん数が足されて行ってしまいました。
106
+
107
+ 同じ層は固定したいのですが、うまい方法はありませんでしょうか?
108
+
109
+
110
+
111
+ ```ruby
112
+
113
+ def each_with_puts(ary,layer)
114
+
115
+ ary.each do |v|
116
+
117
+ p v
118
+
119
+ layer += 1
120
+
121
+ p "現在の階層は" + layer.to_s
122
+
123
+ if v.class == Array
124
+
125
+ each_with_puts(v,layer)
126
+
127
+ end
128
+
129
+ end
130
+
131
+ end
132
+
133
+
134
+
135
+ ary = [[1,2],[3,4,5],[[6,7],[8,[2323, [2,32,2], 43]]]]
136
+
137
+ each_with_puts ary, 1
138
+
139
+
140
+
141
+ #pry(main)> load 'sample.rb'
142
+
143
+ #[1, 2]
144
+
145
+ #"現在の階層は2"
146
+
147
+ #1
148
+
149
+ #"現在の階層は3"
150
+
151
+ #2
152
+
153
+ #"現在の階層は4"
154
+
155
+ #[3, 4, 5]
156
+
157
+ #"現在の階層は3"
158
+
159
+ #3
160
+
161
+ #"現在の階層は4"
162
+
163
+ #4
164
+
165
+ #"現在の階層は5"
166
+
167
+ #5
168
+
169
+ #"現在の階層は6"
170
+
171
+ ```
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+ 実現したい形はこんな感じです
182
+
183
+ ```
184
+
185
+ #pry(main)> load 'sample.rb'
186
+
187
+ #[1, 2]
188
+
189
+ #"現在の階層は3"
190
+
191
+ #1
192
+
193
+ #"現在の階層は3"
194
+
195
+ #2
196
+
197
+ #"現在の階層は2"
198
+
199
+ #[3, 4, 5]
200
+
201
+ #"現在の階層は3"
202
+
203
+ #3
204
+
205
+ #"現在の階層は3"
206
+
207
+ #4
208
+
209
+ #"現在の階層は3"
210
+
211
+ #5
212
+
213
+ #"現在の階層は3"
214
+
215
+ ```