Mercurial > repos > other > SevenLanguagesInSevenWeeks
comparison 1-Ruby/day2.rb @ 20:25c15f27b33d
Complete iteration tasks for day 2
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 07 Jan 2017 20:36:03 +0000 |
parents | ddcd809319ac |
children |
comparison
equal
deleted
inserted
replaced
19:ddcd809319ac | 20:25c15f27b33d |
---|---|
57 my_hash = {} | 57 my_hash = {} |
58 my_array.each_with_index do |val, idx| | 58 my_array.each_with_index do |val, idx| |
59 my_hash[idx] = val | 59 my_hash[idx] = val |
60 end | 60 end |
61 puts my_hash.inspect | 61 puts my_hash.inspect |
62 | |
63 ## Iterating a hash | |
64 puts "Each with single parameter gets pairs" | |
65 my_hash.each { |vals| puts "++#{vals[0]} = #{vals[1]}" } | |
66 puts "Each with two parameters gets key and value" | |
67 my_hash.each { |key, val| puts "++#{key} = #{val}" } | |
68 puts "Or you can get just keys and just values" | |
69 my_hash.each_key { |key| puts "++#{key}" } | |
70 my_hash.each_value { |value| puts "++#{value}" } | |
71 | |
72 ## Arrays as stacks: | |
73 my_arr = [] | |
74 my_arr.push(1) | |
75 my_arr.push(2) | |
76 my_arr.push(3) | |
77 my_arr.push(4) | |
78 puts my_arr.pop() | |
79 puts my_arr.pop() | |
80 puts my_arr.pop() | |
81 puts my_arr.pop() | |
82 ## Arrays as queues | |
83 my_arr.push(7) | |
84 my_arr.push(8) | |
85 my_arr.push(9) | |
86 my_arr.push(10) | |
87 puts my_arr.shift() | |
88 puts my_arr.shift() | |
89 puts my_arr.shift() | |
90 puts my_arr.shift() | |
91 | |
92 ## Iterating in fours | |
93 | |
94 my_arr = Array(1..16) | |
95 # We need a temp place holder - we can't do ugly things with indexes | |
96 temp = [] | |
97 my_arr.each do |val| | |
98 temp.push(val) | |
99 if temp.size == 4 | |
100 puts "#{temp[0]} #{temp[1]} #{temp[2]} #{temp[3]}" | |
101 temp = [] | |
102 end | |
103 end | |
104 | |
105 ## And with each_slice | |
106 my_arr.each_slice(4) do |val| | |
107 puts "#{val[0]} #{val[1]} #{val[2]} #{val[3]}" | |
108 end | |
109 |