红宝石年哈希生成

时间:2011-09-29 10:08:56

标签: ruby hash

我想创建多年的哈希来将其发送到表单

如何创建{2011 => 2011, 2010 => 2010 ... 1990 => 1990}

我尝试过@years = [2011..1990].each { |y| @year.push(y => y) }

如何写这个正确?

2 个答案:

答案 0 :(得分:2)

以下是您的回答:Hash[(1990..2011).map{|y| [y,y]}]

及其后退:Hash[(1990..2011).map{|y| [y,y]}.reverse]

答案 1 :(得分:1)

@Carl Zulauf的回答是正确的。我在考虑使用zip

1.9.2 (main):0 > range=1990..2000
=> 1990..2000
1.9.2 (main):0 > Hash[range.zip(range)]
=> {1990=>1990,
 1991=>1991,
 1992=>1992,
 1993=>1993,
 1994=>1994,
 1995=>1995,
 1996=>1996,
 1997=>1997,
 1998=>1998,
 1999=>1999,
 2000=>2000}