再一次,我是一個新的學生,我正在做一個訓練營,試圖獲得基礎知識和我的腳,但由于某些原因,我不能讓整個迭代的事情在我的大腦中留下痕跡,我們剛剛開始在Ruby中做哈希,我實際上已經盯著檢查點問題一天半了,我只是不能讓我的大腦知道下一個邏輯步驟是什么來獲得提供的答案。這是在我幾周后開始的實際課程之前的一個預習部分,而且這只是我第二個完整的星期在做任何編碼,所以最基本的提示/答案將是非常感激的。
問題是這樣的。 寫一個回圈,給每個人一個電子郵件地址,包括他們的名字 姓氏@ gmail.com。例如,羅伯特-加西亞將有一個電子郵件:[email protected]。程式的結尾應該是:P人
people = [
{
"first_name" => "羅伯特"。
"last_name" => "Garcia",
"愛好" => ["籃球", "象棋", "電話標簽"]
},
{
"first_name" => "Molly",
"last_name" => "Barker",
"愛好" => ["編程", "閱讀", "慢跑"]
},
{
"first_name" => "Kelly",
"last_name" => "Miller",
"愛好" => ["板球", "烘焙", "集郵"]
}
]
outer_index = 0 ]
名字 = []
Last_names = []
while outer_index < people.length
names << people[outer_index]["first_name"].downncase
last_names << people[outer_index]["last_name"].downcase
outer_index = 1].downcase
end。
email = email = [names[0] last_names[0] "@gmail.com"]
這是我所得到的全部資訊,因為我試圖讓它回溯并拾取第二和第三個名字,但沒有成功。
根據他們的說法,這就是最后應該出現的情況。 這樣你就可以看到是否對每個哈希值進行了正確的修改。其結果應該是:
people =[
{
"first_name" => "Robert"。
"last_name" => "Garcia",
"obbies" => ["籃球", "國際象棋", "電話標簽"]。
"email" => "[email protected]"。
},
{
"first_name" => "Molly",
"last_name" => "Barker",
"愛好" => ["編程", "閱讀", "慢跑"] 。
"email" => "[email protected]"。
},
{
"first_name" => "Kelly",
"last_name" => "Miller",
"愛好" => ["板球", "烘焙", "集郵"] 。
"email" => "[email protected]"。
}
]
(注意,你的輸出不會被很好地縮進)。
我完全不知所措,我不知道我在哪里出了問題,所以任何幫助都會對我有很大的幫助,這樣我就可以通過這個檢查點,完成第二周的作業,并盡快進入第三周。
uj5u.com熱心網友回復:
你真的把它復雜化了,沒有必要使用while來簡單地在陣列中回圈。取而代之的是使用Enumerable模塊中的的#each:
people.each do |hash|
hash.merge!(
"email" => "#{hash['first_name']}#{hash['last_name']}@gmail. com".downcase
)
end。
或者,如果你想要一個不改變原始資料的非破壞性版本:
。people.map do |hash|<
hash.merge(
"email" => "#{hash['first_name']}#{hash['last_name']}@gmail。 com".downcase
)
end。
uj5u.com熱心網友回復:
在people陣列的每個元素上回圈是非常直接的。我們還可以使用字串插值來輕松組成電子郵件地址。
people.each do |h|
h["email"] = "#{h["first_name"]}#{h["last_name"]}@gmail. com".downcase
end。
如果我們想把它分解一下,我們可以。
people.each do |h|<
fn = h["first_name"]
ln = h["last_name"]
h["email"] = "#{fn}#{ln}@gmail.com"
h["email"].downncase!
end。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/307607.html
標籤:
