Ruby Array Methods
A cheatsheet from @molly_struve regarding about working with arrays in Ruby. I thought it was awesome so decided to make this handy little paper document.

Each

[1, 2, 3].each do |number|
  puts "hi #{number}"
end

log:
hi 1
hi 2
hi 3

Map

result = [1, 2, 3, 4].map do |number|
  number + 2
end

result = [3, 4, 5, 6]

Flat Map

result = [1,2,3].flat_map do |number|
  ['a', 'b', 'c'].map do |letter|
    "#{number}:#{letter}"
  end
end

result = ["1:a", "1:b", "1:c", "2:a", "2:b", "2:c", "3:a", "3:b", "3:c"]

Select

result = [1, 2, 3, 4].select do |number|
  number.even?
end

result = [2,4]

Detect

result = [1, 2, 3, 4].detect do |number|
  number.even?
end

result = 2

Reject

result = [1, 2, 3, 4].reject do |number|
  number.even?
end

result = [1,3]

Partition

result = [1, 2, 3, 4].partition do |number|
  number.even?
end

result = [[2, 4], [1, 3]]

Count

result = [1, 1, 2, 2, 3, 3].count do |number|
  number.odd?
end

result = 4

Each With Index

You can use this with .each, .select, .map

['a', 'b', 'c'].each.with_index do |letter, index|
  puts index
end
0
1
2

Chaining

result = [1, 2, 3, 4].map{|n| n + 2}.select{|n| n.even?}.reject{|n| n == 6}.map{|n| "hi #{n}"

result = ["hi 4"]