这很简单但我找不到任何东西。我有一个我想循环的数组,为每个数据拉出一个特定属性,然后将这些属性存储在一个新数组中。
基本上:
array2 = [Array1[0].attr, Array1[2].attr, Array1[3].attr]
我有什么
<% storedArray = [] %>
<% @data = current_user.data_items %>
<% @data.each do |data_item| %>
<% storedArray[data_item.count] = data_item.url_metric.da %>
<% end %>
更新:
我得到了它的工作,但是非常糟糕。建议?
<% array = []; i = 0 %>
<% @data = current_user.reports[0].data_items %>
<% @data.each do |data_item| %>
<% array[i] = data_item.url_metric.da %>
<% i = i+1 %>
<% end %>
<%= array %>
答案 0 :(得分:1)
查看方法collect
它返回一个新数组,其中包含在循环通过源数组后创建的值。在您的问题中,代码将是:
# Get initial array
<% @data_items = current_user.reports[0].data_items %>
# Iterate through original array and return value to new array
<% @array = @data_items.collect do | data_item | %>
# Process item
<% data_item.url_metric.da %>
<% end %>
# Now your new array is ready to go.
<%= @array %>
答案 1 :(得分:0)
使用
<% @array= current_user.data_items.map {|data_item| data_item.url_metric.da} %>
您可以使用以下各项直接使用生成的数组:
<% current_user.data_items.map {|data_item| data_item.url_metric.da}.each |result| %>
# Do something with the result
<% end %>
有关更多列表操作,请参阅http://www.ruby-doc.org/core-2.0/Array.html。