I need an insert method for the Array class, the insert method let you
do something like this:
a = ['a', 'b', 'd']
a.insert!(2, 'C')
a => ['a', 'b', 'C', 'd']
I've implemented it this way:
class Array
def insert(v, i)
i = 0 if i < 0
a = Array.new
a += self[0..i-1] if i > 0
a << v
tail = self[i..-1] if i < self.length
a += tail unless tail.nil?
return a
end
def insert!(v, i)
new_self = insert(v, i)
clear
concat new_self
end
end
"Zuzzurro" <celhoquilabrioche@zuzzurro.it> schrieb im Newsbeitrag
news:1106665910.3709.5.camel@localhost.localdomain...
Hi,
I need an insert method for the Array class, the insert method let you
do something like this:
a = ['a', 'b', 'd']
a.insert!(2, 'C')
a => ['a', 'b', 'C', 'd']
I've implemented it this way:
class Array
def insert(v, i)
i = 0 if i < 0
a = Array.new
a += self[0..i-1] if i > 0
a << v
tail = self[i..-1] if i < self.length
a += tail unless tail.nil?
return a
end
def insert!(v, i)
new_self = insert(v, i)
clear
concat new_self
end
end
Il giorno mar, 25-01-2005 alle 16:32 +0100, Robert Klemme ha scritto:
"Zuzzurro" <celhoquilabrioche@zuzzurro.it> schrieb im Newsbeitrag
news:1106665910.3709.5.camel@localhost.localdomain...
> Hi,
>
> I need an insert method for the Array class, the insert method let you
> do something like this:
>
> a = ['a', 'b', 'd']
> a.insert!(2, 'C')
>
> a => ['a', 'b', 'C', 'd']
>
>
> I've implemented it this way:
>
> class Array
> def insert(v, i)
> i = 0 if i < 0
> a = Array.new
> a += self[0..i-1] if i > 0
> a << v
> tail = self[i..-1] if i < self.length
> a += tail unless tail.nil?
> return a
> end
>
> def insert!(v, i)
> new_self = insert(v, i)
> clear
> concat new_self
> end
> end
>
>
> Is there a better way of doing this?
>> a = %w{a b c d}
=> ["a", "b", "c", "d"]
>> a[2,0]=%w{1 2 3}
=> ["1", "2", "3"]
>> a
=> ["a", "b", "1", "2", "3", "c", "d"]