下面我們給出一個名爲win_lose的數組。我們應該創建一個哈希,看起來像下面的哈希。我最初的意圖是使用.count來做某些事情,但在嘗試回答之後,.each_with_object工作得最好。.each_with_object ruby解釋?
有人可以爲我分解什麼.each_with_object方法正在做的和答案本身?我得到了答案,並從閱讀文檔中找出它,但仍然需要解釋方法本身...
謝謝!
win_lose = ["win", "lose", "win", "lose", "win", "win"]
創建基於win_lose陣列上的哈希,看起來像這樣:
這是我最初嘗試沒有成功:
win_loss_count = Hash[win_lose.map.with_index { |outcome, times| outcome = times.count }]
答:
win_loss_count = win_lose.each_with_object(Hash.new(0)) { |word,counts| counts[word] += 1 }
謝謝尼克這個徹底的解釋。我現在明白它好多了! – user3604867 2014-10-29 17:03:56