2013-05-27 17 views
0

我想從另一個數組+一個計數變量創建一個數組。Rails循環值對

Array1 = [100,101,102] 
count = 0 

我想要的結果是NewArray = [ [0,100],[1,101],[2,102] ]

我嘗試了許多不同的循環和結構,但不能得到它。

例子:

<% @daArray.each do |da| %> 
     <%= "["+da.to_s+","+count.to_s+"]" %> 
     <% if count != @daArray.count-1 %> 
      <%= ","%> 
     <% end %> 
     <% count += 1 %> 
    <% end %> 
+0

這麼多?你可以發表一對夫婦嗎? –

+0

我們需要看到一個嘗試,以幫助您更新 – Senjai

+0

示例。謝謝!它會將它傳到屏幕上,但我知道它寫得很糟糕,實際上無法用於轉儲到jquery中來創建圖形(使用我正在使用的gem) –

回答

1

這你想要做什麼:

ary = [100,101,102] 
upper_range = ary.size - 1 # Your "count" 
new_ary = (0..upper_range).zip(ary) # "zip" together the two 
new_ary # => [[0, 100], [1, 101], [2, 102]] 

又見Array#zip documentation

實現同樣結果的另一種方法:

count = -1 
ary.map do |el| 
    count += 1 
    [count, el] 
end 
0

要以您想要的形式獲取數組,您可以使用each_with_index這將佔用一個塊。參數是數組和索引的值。

your_array.each_with_index.map { |value, i| [i, value] } 

要輸出在JavaScript數組方式數組對象,可以真正地將其轉換爲JSON:

your_array.to_json 

採取your_array,看起來像[100, 101, 102],並直接將其轉換成插入字符串如JavaScript,只是將二者結合起來:

<%= your_array.each_with_index.map { |value, i| [i, value] }.to_json %> 
0
arr = [] 
[100,101,102].each_with_index{|val, index| arr << [index, val]}