繁体   English   中英

遍历对象数组

[英]Iterate over an array of objects

我在对象中有一个对象数组,并尝试简化为数组的特定形式。 例如:

[
  #<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>>
]

应该减少到

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

我努力了

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

上面代码的输出是

[ 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而言,它应该仅对val1和val2才对Item1。

我将从以下内容开始:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM