从数组:
this = [1, 2, 3, 4, 5]
我正在尝试创建哈希哈希:
{{num: 1}, {num: 2}, {num: 3}, {num: 4}, {num: 5}}
但我得到一个空的哈希:
Hash.new(this.each do |num| Hash.new(num: num) end)
# => {}
我做错了什么?
答案 0 :(得分:5)
首先,由于您使用的是哈希{}
语法,但您的问题中所需的结果没有意义,但没有密钥。好像你希望你的结果是一个哈希数组。
其次,您将each
与map
混为一谈。 each
只是遍历数组,将每个项目传递给块。 arr.each
的返回值仅为arr
。另一方面,map
根据块的返回值返回一个新数组:
[1, 2, 3, 4, 5].map { |item| { num: item } }
答案 1 :(得分:1)
您正在设置默认值(此外还有一个没有任何意义的块),而不设置任何键值对。