假设我有一个集合fruits
,每个fruit
对象都有一个名为color
的属性。我想循环遍历整个fruits
集合,并将其返回到一个单独的数组中,每个父项的color
为数组中的1个元素。
理想情况下,输出看起来像这样:['red', 'blue', 'green', 'yellow']
。它不必是字符串,它可以是整数或任何作为数组元素的东西。重要的是每个对象的每个属性都包含在数组的1个单元格中,而我只得到1个数组。
我试过这样的事情:
fruits.map { |fruit| return [fruit.color] }
但是这会返回多个数组 - 这不是我想要的。
想法?
答案 0 :(得分:6)
这样做:
fruits.map(&:color)
它相当于:
fruits.map { |fruit| fruit.color }
并为fruits
数组中的每个元素返回从块返回的值数组。
你的解决方案没有用,因为你没有使用颜色,而是返回包含一个元素(颜色)的数组,所以最后你得到了一个数组数组:
[['green'], ['blue']] # etc.