平素より大変お世話になっております。
前提・実現したいこと
hash.each.with_indexで一つのバリューに対してインデックスをカウントさせたい。
または違う手法でも下記のような結果が出るコードが知りたい。
スプレッドシートから情報を抜いて、@company_nameに代入
会社名は繰り返し処理で上から順に代入され、同じ会社名が連続することがある。
発生している問題・エラーメッセージ
0:株式会社a社 0:株式会社a社 0:株式会社a社 0:株式会社b社 0:株式会社b社 0:株式会社c社
上記の結果を下記のようにしたい
0:株式会社a社 1:株式会社a社 2:株式会社a社 0:株式会社b社 1:株式会社b社 0:株式会社c社
該当のソースコード
Ruby
1 sheet = @session.spreadsheet_by_key(@key).worksheet_by_title("hoge") 2 (1..sheet.num_rows).each do |row| 3 @company_name = sheet[row , 4] 4 @service_name = sheet[row, 5] 5 6 hash = {info: [@company_name,]} 7 hash[:info].each.with_index do |value, idx| 8 puts " #{idx}:#{value}" 9 end 10end
追記 単純化させましたが、以下のコードを叩いて
出力結果のIndex is 0, list is ["a", "b", "c", "d", "e", "f"]を
Index is 0, list is ["a"]
Index is 1, list is ["b"]
Index is 2, list is ["c"]
のような結果になる書き方を教えて頂きたいです。
Ruby
1list =["a","b","c","d","e","f"] 2hash = {names: [list]} 3hash[:names].each.with_index do |value, idx| 4 puts "Index is #{idx}, list is #{value}" 5end 6
補足情報(FW/ツールのバージョンなど)
ruby 2.5.3p105
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー