Patrick Brinich-Langlois
Patrick Brinich-Langlois

Reputation: 1429

Search for an Array element beginning at a given index

In Python, you can specify start and end indices when searching for a list element:

>>> l = ['a', 'b', 'a']
>>> l.index('a')
0
>>> l.index('a', 1) # begin at index 1
2
>>> l.index('a', 1, 3) # begin at index 1 and stop before index 3
2
>>> l.index('a', 1, 2) # begin at index 1 and stop before index 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 'a' is not in list

Is there an equivalent feature in Ruby? You can use array slices, but that seems as though it would be less efficient, because of its requiring intermediate objects.

Upvotes: 9

Views: 615

Answers (2)

user513951
user513951

Reputation: 13612

There is not an equivalent feature in Ruby.

You can search from the start of the array and forward to the end with #index, or search from the end of the array and go backward to the start with #rindex. To go from one arbitrary index to another, you have to first slice the array down to the indices of interest using array slices (for example with #[]) as the OP suggested.

Upvotes: 2

Sachin Singh
Sachin Singh

Reputation: 7225

try this out

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

arr[1,3].include? 2
=> true
arr[1,3].include? 1
=> false

Upvotes: 0

Related Questions