[ruby] 배열에서 값 찾기

Ruby에서 배열에서 값을 어떻게 찾을 수 있습니까?



답변

특정 값이 배열 내부에 있는지 찾으려고 시도하고 있다고 생각하며, 그렇다면 Array # include? (value)를 사용할 수 있습니다.

a = [1,2,3,4,5]
a.include?(3)   # => true
a.include?(9)   # => false

다른 의미가 있다면 Ruby Array API를 확인하십시오.


답변

를 사용 Array#select하면 기준을 충족하는 요소의 배열이 제공됩니다. 그러나 기준을 충족하는 배열에서 요소를 가져 오는 방법을 찾고 있다면 Enumerable#detect더 나은 방법이 될 것입니다.

array = [1,2,3]
found = array.select {|e| e == 3} #=> [3]
found = array.detect {|e| e == 3} #=> 3

그렇지 않으면 다음과 같이 어색한 작업을 수행해야합니다.

found = array.select {|e| e == 3}.first


답변

배열에서 하나의 값을 찾으려면 Array#find다음을 사용하십시오 .

arr = [1,2,6,4,9]
arr.find {|e| e%3 == 0}   #=>  6

또한보십시오:

arr.select {|e| e%3 == 0} #=> [ 6, 9 ]
e.include? 6              #=> true

값이 배열에 있는지 확인하려면 #in?ActiveSupport를 사용할 때도 사용할 수 있습니다 . #in?에 응답하는 모든 객체에 대해 작동합니다 #include?.

arr = [1, 6]
6.in? arr                 #=> true


답변

이렇게?

a = [ "a", "b", "c", "d", "e" ]
a[2] +  a[0] + a[1]    #=> "cab"
a[6]                   #=> nil
a[1, 2]                #=> [ "b", "c" ]
a[1..3]                #=> [ "b", "c", "d" ]
a[4..7]                #=> [ "e" ]
a[6..10]               #=> nil
a[-3, 3]               #=> [ "c", "d", "e" ]
# special cases
a[5]                   #=> nil
a[5, 1]                #=> []
a[5..10]               #=> []

아니면 이것처럼?

a = [ "a", "b", "c" ]
a.index("b")   #=> 1
a.index("z")   #=> nil

설명서를 참조하십시오 .


답변

이를 위해 Array.select 또는 Array.index 를 사용할 수 있습니다 .


답변

사용하다:

myarray.index "valuetoFind"

원하는 요소의 인덱스를 반환하거나 배열에 값이 없으면 nil을 반환합니다.


답변

이 답변은 수락 된 답변이 현재 작성된 질문을 다루지 않는다는 것을 알고있는 모든 사람을위한 것입니다.

질문은 배열에서 값 을 찾는 방법을 묻습니다 . 허용되는 대답은 값 배열에 있는지 확인하는 방법을 보여줍니다 .

이미을 사용한 예제가 있으므로이 방법을 index사용한 예제를 제공하고 select있습니다.

1.9.3-p327 :012 > x = [1,2,3,4,5]
  => [1, 2, 3, 4, 5]
1.9.3-p327 :013 > x.select {|y| y == 1}
  => [1]