Ruby 修改数组

Ruby 修改数组,ruby,Ruby,我有一个这样的数组 example_array = ['dog', 'cat', 'snake'] 我试图将时间戳附加到数组的每个元素,输出应该如下所示 example_array = [{'dog': 'time_stamp'},{'cat':'time_stamp'},{'snake':'time_stamp'}] 我已尝试此操作,但输出不正确: a = {} example_array.each_with_index do |element, i| a.merge!("#{elem

我有一个这样的数组

example_array = ['dog', 'cat', 'snake']
我试图将时间戳附加到数组的每个元素,输出应该如下所示

example_array = [{'dog': 'time_stamp'},{'cat':'time_stamp'},{'snake':'time_stamp'}]
我已尝试此操作,但输出不正确:

a = {}
example_array.each_with_index do |element, i|
  a.merge!("#{element}": "#{Time.now}")
  example_array.delete_at(i)
end
有人能给我推荐一个ruby的解决方案吗? 我已经尝试了很多方法,但无法获得上述输出。

Aditha

这个怎么样

array = ["cat", "hat", "bat", "mat"]
hash = []
hash.push(Hash[array.collect { |item| [item, Time.now] } ])
输出:=>[{“cat”=>“2018-02-28 04:23:08 UTC”,“hat”=>“2018-02-28 04:23:08 UTC”,“bat”=>“2018-02-28 04:23:08 UTC”,“mat”=>“2018-02-28 04:23:08 UTC”]

您将插入时间戳信息,而不是item.upcase。它给我数组内部的哈希值。

Aditha

这个怎么样

array = ["cat", "hat", "bat", "mat"]
hash = []
hash.push(Hash[array.collect { |item| [item, Time.now] } ])
输出:=>[{“cat”=>“2018-02-28 04:23:08 UTC”,“hat”=>“2018-02-28 04:23:08 UTC”,“bat”=>“2018-02-28 04:23:08 UTC”,“mat”=>“2018-02-28 04:23:08 UTC”]


您将插入时间戳信息,而不是item.upcase。它给了我数组内部的哈希值。

唯一奇怪的是,您必须使用=>而不是:

arr = ['dog', 'cat', 'snake']
arr2 = []

for index in 0 ... arr.size
  arr2.push({arr[index] => Time.now})
end

puts arr2

唯一奇怪的是,您必须使用=>而不是:

arr = ['dog', 'cat', 'snake']
arr2 = []

for index in 0 ... arr.size
  arr2.push({arr[index] => Time.now})
end

puts arr2
]注意,这可确保所有值(时间戳)相等

['dog', 'cat', 'snake'].map{|e| [{e.to_sym => "time_stamp"}]}
# => [[{:dog=>"time_stamp"}], [{:cat=>"time_stamp"}], [{:snake=>"time_stamp"}]]


]请注意,这可以确保所有值(时间戳)都相等。

给我们您的AttemptsAdithya,您要寻找的可能是这样的:一旦您将数组[['dog'、'time_stamp']、['cat'、'time_stamp]]]@iceveda06分组,您就可以将数组转换为哈希,但它应该是数组内的一组哈希。@iceveda06。我试过了。我得到以下信息<代码>['dog:time\u stamp'、'cat:time\u stamp'、'snake:time\u stamp']为什么选择该数据结构?我之所以这么问,是因为(从表面上看)它更适合以动物为钥匙的杂烩。还有,时间戳从哪里来?给我们你的AttemptsAdithya,你要找的可能是这样,一旦你将数组[['dog'、'time_stamp']、['cat'、'time_stamp]]]@iceveda06分组,你就可以将数组转换成散列,但它应该是数组中的一组散列。@iceveda06。我试过了。我得到以下信息<代码>['dog:time\u stamp'、'cat:time\u stamp'、'snake:time\u stamp']为什么选择该数据结构?我之所以这么问,是因为(从表面上看)它更适合以动物为钥匙的杂烩。时间戳从何而来?需要
time
有什么需要?
示例\u array.product([time.now])到\u h
?无论如何,在其他响应中,对
product
的投票高于所有
map
。@RAJ,因为没有Rails标签。纯红宝石需要它。@CarySwoveland不,没有必要!它不需要
时间
需要
时间
有什么需要呢?
示例_array.product([time.now])。到_h
?无论如何,对
产品
投了赞成票,这比其他响应中的所有
映射
要好得多。@RAJ,因为没有Rails标签。纯红宝石需要它。@CarySwoveland不,没有必要!它工作得很好,不需要
时间
我们不是在C语言的世界里!我们在红宝石的世界里!我们不是在C语言的世界里!我们在红宝石的世界里!请在您的答案周围添加一些描述,而不仅仅是转储代码。有你名声的人应该知道这一点!请在您的答案周围添加一些描述,而不仅仅是转储代码。有你名声的人应该知道这一点!
['dog', 'cat', 'snake'].map{|e| [{e.to_sym => "time_stamp"}]}
# => [[{:dog=>"time_stamp"}], [{:cat=>"time_stamp"}], [{:snake=>"time_stamp"}]]