2013-12-16 133 views
0
限制

我創建了一個地圖,並從數據庫中以下列方式檢查在Ruby哈希

def data 
myMaps.map do |Mymap| 
{ 
    key1: value1, 
    key2: value2, 
    kay3: value3 
} 
end 
end 

如果讓我來檢查值1是無我取的鍵的值,什麼是正確的語法? 只有當值不爲零時,我纔想分配鍵值對。

回答

1

首先,您應該查看#map here的文檔。從你的問題來看,你很難清楚你想要做什麼。你的方法會假定myMaps是一個數組,然後用三個鍵和三個值將一個散列映射到每個值上。我不是100%肯定,但我想你想要的是更多的東西一樣:

myMaps = { key2: value2, key3: value3 } 
myMaps[key1] = value1 unless value1.nil? 
+0

是的我試過這樣做,但我卡住了這個錯誤'意想不到的kUNLESS_MOD' – ruby

0

一個值分配給當值爲零的哈希鍵的方式如下

hash[:key] ||= "value" 

我不知道如何正確回答你的問題,因爲它很不清楚。

首先Ruby中沒有Map數據類型。你可能稱之爲Map的實際上是一個哈希。然而,對於Hash,沒有map方法,只是對於Array,所以我假定myMapsArray,但是沒有證據表明這種變量在哪裏定義。

+0

我正在創建一個散列,其中的密鑰值是從數據庫中提取的。我只想在數據庫中存在該值(而不是nil)時在哈希中分配鍵值對,否則跳過該鍵值對並繼續下一個值。 – ruby