使用值数组散列

时间:2015-02-12 14:58:58

标签: ruby hash

我正在创建一个哈希,它只有一个键,但是有一个与之关联的值数组。我试图访问哈希值数组的特定索引中的特定值。

numbers = {fib => [1, 1, 2, 3, 5]}

如果我想访问索引3,那么我会说numbers.values_at(“numbers”)。index(4)。但是,这不会返回值5,而是返回整个数组。是否可以从该哈希的值数组中提取单个值?

我使用的是ruby 1.9.3所以我只能使用这个ruby版本中的方法。

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

numbers[fib][i]

访问数组的位置i。

values_at方法返回传递多个键时的值数组,如果只需要一个值(因此只将一个键传递给values_at),正确的方法是将键直接传递给散列。

如果您仍想访问哈希' value数组,然后你需要做这样的事情:

numbers.values_at(fib)[0][i]

答案 1 :(得分:1)

数字[fib] [4]是最好的方法:

> numbers[fib]
=>[1, 2, 3, 4, 5]
> numbers[fib][4]
=> 5