Ruby arrays grow with methods such as <<, and they can report their size or join their values.

array method Array methods change or summarize the values stored in order.

Array Methods

new_item
array_methods.rb
Replay: real traced execution (multi-file project)
items = ["pencil", "notebook"]
new_item = "eraser"

items << new_item

puts "count=#{items.length}"
puts "items=#{items.join(", ")}"
items = ["pencil", "notebook"]
new_item = "marker"

items << new_item

puts "count=#{items.length}"
puts "items=#{items.join(", ")}"
items = ["pencil", "notebook"]
new_item = "folder"

items << new_item

puts "count=#{items.length}"
puts "items=#{items.join(", ")}"
  1. items ← ["pencil", "notebook"], new_item ← eraser

    1items→ ["pencil", "notebook"] = ["pencil", "notebook"]2new_item→ eraser = "eraser"  #@new_item="marker", "folder"34items << new_item56puts "count=#{items.length3}"7puts "items=#{items.join(", ")pencil, notebook, eraser}"
    outputcount=3
    items=pencil, notebook, eraser
  1. items ← ["pencil", "notebook"], new_item ← marker

    1items→ ["pencil", "notebook"] = ["pencil", "notebook"]2new_item→ marker = "marker"34items << new_item56puts "count=#{items.length3}"7puts "items=#{items.join(", ")pencil, notebook, marker}"
    outputcount=3
    items=pencil, notebook, marker
  1. items ← ["pencil", "notebook"], new_item ← folder

    1items→ ["pencil", "notebook"] = ["pencil", "notebook"]2new_item→ folder = "folder"34items << new_item56puts "count=#{items.length3}"7puts "items=#{items.join(", ")pencil, notebook, folder}"
    outputcount=3
    items=pencil, notebook, folder