带有许多数组的哈希

时间:2013-02-17 19:22:38

标签: ruby arrays

我正在尝试定义一个可以创建一对多关系的结构。例如,假设一个名为“ACO”的组织有一些东西:

KEY_PERF_INDS = [ {'ACO' => [2,3,4] , [2,34,5]} ]

但这在语法上是错误的。是否有可能写出实现这一目标的东西?

1 个答案:

答案 0 :(得分:2)

如果您的其他群组HOSPITAL, BLAH, ETC(根据评论)与ACO处于同一级别,则整个结构KEY_PERF_INDS应为哈希{}而不是数组[]。使每个都成为主哈希的键,每个都是一个包含子数组的数组。

# The main structure is a hash {}
KEY_PERF_INDS = { 
  'ACO' => [
    [1,2,3],
    [4,5,6]
  ], 
   'HOSPITAL' => [
    [3,2,1],
    [9,8,7]
  ],
  'BLAH' => [
    [99,88], 
    [11,22],
    [33,44]
  ]
}

然后访问这些:

KEY_PERF_INDS['HOSPITAL'][1][2]
# prints 7

KEY_PERF_INDS['BLAH'].last.first
# prints 33