1
的第一個元素的名稱創建數組我有一個數組需要新的陣列
a=["ncd",0.1,0.2,0.3.0.4]
現在,我可以創建名片的名義陣列時不聲明變量,例如,另一個數組有NCD的名稱要創建像
ncd=[0.1,0.2,0.3.0.4]
但如上圖所示,我需要從數組中彈出元素,需要創建一個數組,
我不會做這種靜態對於e xample,我需要使用[0]創建數組,這在Ruby中可能嗎?
的第一個元素的名稱創建數組我有一個數組需要新的陣列
a=["ncd",0.1,0.2,0.3.0.4]
現在,我可以創建名片的名義陣列時不聲明變量,例如,另一個數組有NCD的名稱要創建像
ncd=[0.1,0.2,0.3.0.4]
但如上圖所示,我需要從數組中彈出元素,需要創建一個數組,
我不會做這種靜態對於e xample,我需要使用[0]創建數組,這在Ruby中可能嗎?
我建議你有一個哈希
a = { "ncd" => [0.1,0.2,0.3.0.4] }
或者,如果你有數組的一些陣列這樣
a = [['ncd1', 0.1,0.2,0.3,0.4], ['ncd2', 0.1,0.2,0.3,0.4]]
你可以使用一些方法來獲取動態值
def dynamic(ar)
ar.each_with_object({}) do |el, hash|
hash[el.first] = el[1..-1]
end
end
dynamic a
#=> {"ncd1"=>[0.1, 0.2, 0.3, 0.4], "ncd2"=>[0.1, 0.2, 0.3, 0.4]}
然後
dynamic(a)['ncd1']
#=> [0.1, 0.2, 0.3, 0.4]
但是,這看起來像在紅寶石中的某種醜陋的語法。
更新1
也許這將是通過鍵作爲第二個參數不太難看,即
def dynamic(ar, key)
ar.each_with_object({}) do |el, hash|
hash[el.first] = el[1..-1]
end[key]
end
dynamic a, 'ncd1'
它是由你來決定。
更新2
我忘了...
你爲什麼不有一個哈希你可以做的,而不是el.drop(1)
el[1..-1]
非常好,謝謝,我接受了你的回答。 – Gopal
? 'a = {「ncd」=> [0.1,0.2,0.3.0.4]}'。然後你可以做''['ncd']' – Aleksey
這個想法剛剛出現在我的腦海中,而且你已經寫下了,謝謝。 – Gopal
或者您可以使用實例變量 –