2017-04-22 2 views
0

객체의 배열이 있고 특정 배열의 배열로 축소하려고합니다. 예를 들어객체 배열을 반복합니다.

[ 
    #<Item name: "Item 1", content: #<Item value: #<Item quantity: val1>, #<Item 
quality: val2>>, 
    #<Item name: "Item 2", content: #<Item value: #<Item quantity: val1>, #<Item 
quality: val2>>, 
    #<Item name: "Item 3", content: #<Item value: #<Item quantity: val1>, #<Item 
quality: val2>>, 
    #<Item name: "Item 4", content: #<Item value: #<Item quantity: val1>, #<Item 
quality: val2>>, 
    #<Item name: "Item 5", content: #<Item value: #<Item quantity: val1>, #<Item 
quality: val2>> 
] 

제가

arr1 = [] 
arr2 = [] 
array.each do |array| 
arr1 << array.name 
    arr2 << array.value.quantity 
    arr2 << array.value.quality 
    arr1 << arr2 
end 

시도했다

[ [Item1, [val1, val2]], [Item2, [val1, val2]], [Item3, [val1, val2]], [Item4, 
[val1, val2]], [Item5, [val1, val2]]] 

로 감소되어야

상기 코드의 출력

[ Item1, [val1,val2,val1,val2,val1,val2,val1,val2,val1,val2,val1,val2], 
Item2, [[val1,val2,val1,val2,val1,val2,val1,val2,val1,val2,val1,val2]....] 

코드와 문제 객체 당 반복 횟수를 멈추지 않습니다. 내 말은 Item1의 경우 Item1에 대해서만 val1 및 val2이어야합니다.

+0

이 항목은 데이터베이스 쿼리의 결과를 객체인가? 만약 당신이 배열을 원한다면 이걸 물어 보겠습니다.이 작업은'pluck'로해야합니다. – marmeladze

+0

아니요, items 객체는 데이터베이스 질의의 결과가 아닙니다. – rekha

답변

4

I는 다음과 같이 시작합니다 :

array.map do |element| 
    [element.name, [element.value.quantity, element.value.quality]] 
end