Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.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,我有一个带有字符串值的嵌套数组: a = [["2000", "2004"], ["2005", "2007"]] 我将值转换为整数,如下所示: int_val = [] a.each do |a| int_val << a.map(&:to_i) end int_val #=> [[2000, 2004], [2005, 2007]] int_val=[] a、 每个都有一个| 国际货币基金组织[[20002004],[20052007]] 是否有任何简

我有一个带有字符串值的嵌套数组:

a = [["2000", "2004"], ["2005", "2007"]]
我将值转换为整数,如下所示:

int_val = []

a.each do |a|
  int_val << a.map(&:to_i)
end

int_val #=> [[2000, 2004], [2005, 2007]]
int_val=[]
a、 每个都有一个|
国际货币基金组织[[20002004],[20052007]]
是否有任何简短的解决方案或一行代码<代码>[“2000”、“2004”、“2005”、“2007”]]。地图(&:to_i)不起作用。

二维地图如何

a = [["2000", "2004"], ["2005", "2007"]]
a.map {|i| i.map(&:to_i) }  # => [[2000, 2004], [2005, 2007]]
使用:

a=[[“2000”、“2004”、“2005”、“2007”]]
a、 每个带有对象([])的对象都有一个int值|

int_val单个
map

a.map { |i, j| [i.to_i, j.to_i] }
当然,这不是一个通用的解决方案,但对您的示例很好。

出于好奇:

a = [["2000", "2004"], ["2005", "2007"]]
a.flatten.map(&:to_i).each_slice(2).to_a
#⇒ [[2000, 2004], [2005, 2007]]

[“2000”、“2004”]、[“2005”、“2007”].map{row | row.map(&:to|i)}
works…@dawg,您可能错过了halfelf之前给出的解决方案。
a.每个do | a |
——使用外部变量名()可能会导致混淆。不要那样做。为什么那样会占用更少的内存?帕斯卡尔贝茨仔细思考后,我承认我错了。你能详细说明一下“穆达索布瓦”这个词吗。更新了答案。谢谢更新。事实上,我并没有“指出”,只是想知道为什么它可以使用更少的内存。还在想。。。。可能会在某个时候编写一个基准。@pascalbetz它的效率甚至稍低,因为与
map
不同的是,数组必须随着新元素的添加而调整大小。奇怪的是,考虑到它只在
a.size==a[0]时才起作用。size==a[1]。size==2
确实,我也很惊讶。
a = [["2000", "2004"], ["2005", "2007"]]
a.flatten.map(&:to_i).each_slice(2).to_a
#⇒ [[2000, 2004], [2005, 2007]]