나는 다음과 같은 속성을 가진 인종 객체의 배열을 가지고 plural_array라는 새 배열에서 way 및 track_id 특성 값이 동일한 레이스 개체를 수집하려고합니다. (기본적으로 way와 track_id에 의해 정의 된 각각의 Race 객체를 복제합니다.) singular_array라는 또 다른 배열에서 중복되지 않는 모든 Race 객체를 수집하려고합니다.루비 배열 중복 및 비 중복 된 개체의 컬렉션을 반환
race1 :
- 방법 = 1
- race_period_id = 20304
- track_id = 94949 예를 들어
, 이제 나는 다음과 같은 속성 값을 가진 네 레이스 객체가 있다고 가정하자
race2 :
- 방법 = 2
- race_period_id = 20,888
- track_id = 94,949
race3
- 방식 = 1
- race_period_id = 20,899
- track_id = 94,949
race4
- 방법 = 1
- race_period_id = 20888
- track_id = 그래서 여기 885,858
I이 "복수"개체가 : 인종 1 race3을. 그리고 두 개의 "단수"객체 인 race2와 race4.
내가 가진 경우라는 방법 get_plural_and_singular_arrays (races_array), 내가 반환하는 데 사용하는 것이 무엇 알고리듬 plural_array (포함 개체 만 인종 1 race3)과 singular_array (포함은 race2 및 race4 객체) ?
def get_plural_and_singular_arrays(races_array)
# algorithm here
return plural_array, singular_array
end
일을 멋진 기능 솔루션. 그래도 파티션을 사용합니다 : list.group_by {| r | [r.way, r.track_id]}. 파티션 {| ary | ary.size> 1} – tokland
+1 한 줄로 작성할 수있는 코드! –
내 one-liner를 Btw ('ActiveSupport' 배열 개선) :'list.group_by {| i | [0123] . –