Array Growth

There are a variety of ways to add items to an array.

In the beginning…

There was #unshift. If you want to add something in the beginning, use it.

how_much = ["many", "slams", "in", "an", "old", "screen", "door"]

=> ["how", "many", "slams", "in", "an", "old", "screen", "door"]

In the end…

You can always use #push, which could handle just one or multiple arguments. There’s also fun to be had in chaining it.

how_much =["how", "many", "slams", "in", "an", "old", "screen", "door"]

=> ["how", "many", "slams", "in", "an", "old", "screen", "door", "depends"]

how_much.push("how", "loud")
=> ["how", "many", "slams", "in", "an", "old", "screen", "door", "depends", "how", "loud"]

=> ["how", "many", "slams", "in", "an", "old", "screen", "door", "depends", "how", "loud", "you", "shut", "it"]

The same fun can be had with #<<

how_much = ["how", "many", "slices", "in", "a", "bread"]

how_much << "depends"
=> ["how", "many", "slices", "in", "a", "bread", "depends"]

how_much << ["how", "thin"]
=> ["how", "many", "slices", "in", "a", "bread", "depends", ["how", "thin"]]

how_much << "you" << "cut" << "it"
=> ["how", "many", "slices", "in", "a", "bread", "depends", ["how", "loud"], "you", "cut", "it"]

Everywhere else

With #insert, we can give an index to indicate where we’d like things to go before giving the object(s) that will be going there. Notice that it pushes things around to accommodate¬†our request that this new object goes where we want and everything else needs to fall in line.

how_many = ["how", "much", "inside", "a", "day"]

how_many.insert(2, "good")
=> ["how", "much", "good", "inside", "a", "day"]

how_many.insert(-1, "depends", "how", "good", "you", "live")
=> ["how", "much", "good", "inside", "a", "day", "depends", "how", "good", "you", "live"]


“How Many, “How Much” -Shel Silverstein

How many slams in an old screen door?
Depends how loud you shut it.
How many slices in a bread?
Depends how thin you cut it.
How much good inside a day?
Depends how good you live ’em.
How much love inside a friend?
Depends how much you give ’em.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s