我稱之爲「數據」陣列的陣列,其是: (內置它來調整使用sb's advice on Active Admin)迭代陣列的陣列以簡化代碼(紅寶石,導軌,有源管理員1.0)
我需要使用它的數據來創建散列的一個陣列具有這種結構:
data_prepared_for_table = [{goal: data[0][0], number: data[0][1]},
{goal: data[1][0], number: data[1][1]},
{goal: data[2][0], number: data[2][1]},
{goal: data[3][0], number: data[3][1]},
{goal: data[4][0], number: data[4][1]},
{goal: data[5][0], number: data[5][1]}
]
在data_prepared_for_table
,目標具有顯示陣列「日期」的第一部分:採集,品牌,資格。
數量在以顯示相關量陣列「數據」,如3,2,1
我想要做兩兩件事:
流線型/提高代碼通過使用LOP每或者,這將使我產生data_prepared_for_table 類似:
data_prepared_for_table = [(0..5).each do |i| {goal: data[i][0], number: data[i][1]}, ]
但它不工作,並創建了一個錯誤。我應該怎麼做?
另一件事情是,在我給它的例子中,數據[5] [0]但我希望能夠不指定結束(5這裏),以防數組變長和上升到數據[6]甚至更多[7]等等...... 事實上,我事先並不知道它會得到多久!
我怎樣才能做到這一點,而沒有指定最後一個值i
?也許在迭代中,指定i
必須增加,直到data[i][0].exists?
?
你能展示一個預期的輸出目標和數據是指什麼? – bjhaid
@bjhaid只是加了一些解釋。這是非常基本的:我有一個數組與goal_type和每個goal_type一個數字。我需要使用名爲'data'的數組內部的信息來創建另一個名爲data_prepared_for_table的數組。我設法做到這一點,但正如我所說,如果可能的話,我想幹DRY /簡化/減少代碼感謝循環/迭代。我還需要提供的情況下,我不知道數組中的值的數量。 – Mathieu