Arrays
Arrays
- An ARRAY is a CONTAINER
- an object that contains other objects
- It's a list of objects
What makes an array an array
- You can put any objects inside it
- In any order
- They stay in order
- Duplicates are fine
Creating an array
["apple", "banana", "cherry"]
Array Indexes
- Every slot in the array has a serial number
- You can retrieve any item in an array by its INDEX
- An index is a number from 0 to infinity
- actually to the size of the array
Array Indexes Exercise
Try this in IRB:
fruits = ["apple", "banana", "cherry"] fruits[1]
Did you get the result you expected?
Why or why not?
Start At Zero
When counting,
humans start at one,
but computers start at zero.
So the first item in an array is number zero, not number one.
The End
Try this:
fruits[99]
Did you get the result you expected?
Why or why not?
Array Methods
fruits.last fruits.first fruits.reverse fruits.shuffle
Turning an array into a string
fruits.join fruits.join(" and ")
Note that to_s
doesn't work right on arrays:
fruits.to_s puts fruits.to_s
Looping through an array
fruits.each do |fruit| puts fruit end
-
each
is likewhile
for arrays -
fruits.each do
means "for each item inside this array, do this" -
|fruit|
means "put the current item into a variable namedfruit
" -
puts fruit
means "print out the value of this variable" -
end
means "we're done with the loop now" :-)
Lab: reverse fruit
Given this array:
fruits = ["apple", "banana", "cherry"]
write a program that prints:
yrrehc ananab elppa
Setting items in an array
The []
operator works for assignment as well.
fruits[0] = "Apricot" fruits[1] = "Blueberry" puts fruits.first
Checking an array
The include?
method checks if an object is inside an array or not.
fruits.include? "apple" true fruits.include? "pizza" false
LAB: enemies list refactoring
I'd like you to refactor your old hello.rb
program to use the include?
method to check if someone is your enemy.