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