Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 从数组中的散列访问数据_Ruby - Fatal编程技术网

Ruby 从数组中的散列访问数据

Ruby 从数组中的散列访问数据,ruby,Ruby,我在数组中有一些散列,如下所示 arr=[ {a: 1, b:2, c:3}, {a:3, b:5, c:4}, {a:6 b:7, c:9} ] 我想从最后一个散列中求出数字的和。 我在想类似的事情 arr.last[each_value.inject(:+)] 但是,它不起作用,有什么更好的方法吗?您的代码 arr.last[each_value.inject(:+)]#不起作用 arr.last是一个散列。所以你可以用 arr.las

我在数组中有一些散列,如下所示

arr=[
      {a: 1, b:2, c:3},
      {a:3, b:5, c:4},
      {a:6 b:7, c:9}
     ]
我想从最后一个散列中求出数字的和。 我在想类似的事情

  arr.last[each_value.inject(:+)]
但是,它不起作用,有什么更好的方法吗?

您的代码

arr.last[each_value.inject(:+)]#不起作用
arr.last
是一个散列。所以你可以用

arr.last.each_value.inject(:+)#=>22
其他方面,

arr.last.values.sum#=>22
arr.last.sum{| u键,val | val}#=>22
arr.last.reduce(0){sum,(_-key,val){sum+val}}}=>22
什么叫“它不工作”?您的第一个异常是包含
{a:6b:7,c:9}
的行中的
SyntaxError
。如果您只是不正确地转录了它(如果您在发布之前测试了
arr
是有效的,您就不会这么做了),那么最后一行将引发异常
namererror(未定义的局部变量或main:Object的“each\u value”方法)
。这是您需要在问题中报告的基本信息;事实上,正如错误消息通常所做的那样,它可以精确地指出错误。