Ruby,将值附加到哈希表中键值对的现有值

时间:2011-09-18 08:15:40

标签: ruby json hash hashtable multidimensional-array

我有一个嵌套的哈希表。

如果我写

 json.each{|key, value|
    puts value;
    puts;
    puts value[x];
    puts;
    puts value[x][0];
 }

我得到的结果是

标题1
NAME1
标题2
NAME2

标题1
NAME1

标题1

我希望能够按照

的方式做点什么
value[value.size][0] = Title3;
value[value.size][1] = name3;

因此,这会将值附加到值的末尾 我刚刚做了什么抛出未定义的方法'[] ='所以我在想 如果有人能帮助我以这种方式或其他方式追加价值 这样我就可以增加与同一个键相关的值 保持与它相关联的顺序。 (当我记录json值时很重要)

1 个答案:

答案 0 :(得分:0)

由于value[value.size]评估为nil,value[value.size][0] = Title3评估为nil[0] = Title3,这就是您收到错误的原因。你想要做的是将包含Title3和name3的数组附加到value,所以:

value[value.size] = [Title3, name3]

或者更好地使用方法push代替value[value.size] =

value.push([Title3, name3])