Skip to content
instance method

Array#insert

(::int index, *Elem obj) -> self
insert(index, *objects) → self

Inserts the given objects as elements of self; returns self.

When index is non-negative, inserts objects before the element at offset index:

Example
a = ['a', 'b', 'c']     # => ["a", "b", "c"]
a.insert(1, :x, :y, :z) # => ["a", :x, :y, :z, "b", "c"]

Extends the array if index is beyond the array (index >= self.size):

Example
a = ['a', 'b', 'c']     # => ["a", "b", "c"]
a.insert(5, :x, :y, :z) # => ["a", "b", "c", nil, nil, :x, :y, :z]

When index is negative, inserts objects after the element at offset index + self.size:

Example
a = ['a', 'b', 'c']      # => ["a", "b", "c"]
a.insert(-2, :x, :y, :z) # => ["a", "b", :x, :y, :z, "c"]

With no objects given, does nothing:

Example
a = ['a', 'b', 'c'] # => ["a", "b", "c"]
a.insert(1)         # => ["a", "b", "c"]
a.insert(50)        # => ["a", "b", "c"]
a.insert(-50)       # => ["a", "b", "c"]

Raises IndexError if objects are given and index is negative and out of range.

Related: see Methods for Assigning.

See also #initialize_copy #inspect #index #intersect? also in 4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0