# Subarray using \[1,-1\] returns nil

**URL:** <https://www.ruby-forum.com/t/subarray-using-1-1-returns-nil/112869>\
**Category:** Ruby\
**Created:** [August 24, 2007, 1:03am UTC](https://www.ruby-forum.com/t/subarray-using-1-1-returns-nil/112869 "2007-08-24T01:03:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![toadkicker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/5fc32e/32.png) [@toadkicker](https://www.ruby-forum.com/u/toadkicker)\
**Post date:** [August 24, 2007, 1:03am UTC](https://www.ruby-forum.com/t/subarray-using-1-1-returns-nil/112869/1 "2007-08-24T01:03:18Z")

</div>

a = %w(a b c d e f g) ;  
puts “a.length = #{a.length}” ;

b = a[1,-1] ;  
puts “b.length = #{b.length}” ;

Why is array b nil after the subarray? I expect it to be equal to “a”  
minus the first element.

Todd

---

<div class="post-metadata">

**Author:** ![toadkicker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/5fc32e/32.png) [@toadkicker](https://www.ruby-forum.com/u/toadkicker)\
**Post date:** [August 24, 2007, 1:14am UTC](https://www.ruby-forum.com/t/subarray-using-1-1-returns-nil/112869/2 "2007-08-24T01:14:12Z")

</div>

Todd B. wrote:

> a = %w(a b c d e f g) ;  
> puts “a.length = #{a.length}” ;
> 
> b = a[1,-1] ;  
> puts “b.length = #{b.length}” ;
> 
> Why is array b nil after the subarray? I expect it to be equal to “a”  
> minus the first element.
> 
> Todd

I think I see the issue (the issue = my error). The “-1” is the last  
element of the array, and the method is epxecting a length, not an  
element.

Todd

---

<div class="post-metadata">

**Author:** ![toadkicker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/5fc32e/32.png) [@toadkicker](https://www.ruby-forum.com/u/toadkicker)\
**Post date:** [August 24, 2007, 1:29am UTC](https://www.ruby-forum.com/t/subarray-using-1-1-returns-nil/112869/3 "2007-08-24T01:29:19Z")

</div>

Hi,

At Fri, 24 Aug 2007 08:14:15 +0900,  
Todd B. wrote in [ruby-talk:266016]:

> I think I see the issue (the issue = my error). The “-1” is the last  
> element of the array, and the method is epxecting a length, not an  
> element.

Maybe, don’t you want to try a[1…-1]?

---

<div class="post-metadata">

**Author:** ![toadkicker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/5fc32e/32.png) [@toadkicker](https://www.ruby-forum.com/u/toadkicker)\
**Post date:** [August 24, 2007, 1:56am UTC](https://www.ruby-forum.com/t/subarray-using-1-1-returns-nil/112869/4 "2007-08-24T01:56:10Z")

</div>

Nobuyoshi N. wrote:

> Hi,
> 
> Maybe, don’t you want to try a[1…-1]?

Very good! Works fantastic. Thanks!

I had coded b=a[1,a.length-1] but I like your solution better.

Todd
