Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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_Arrays - Fatal编程技术网

Ruby 将数组转换为自定义格式的哈希

Ruby 将数组转换为自定义格式的哈希,ruby,arrays,Ruby,Arrays,有人能帮我把下面的数组转换成如下格式的散列吗 阵列 [[“0”,{“checkbox_2”=>“on”}],“2”,{“checkbox_1”=>“on”}] 散列 search=>{"checkbox_2"=>"on", "checkbox_1"=>"on"} 怎么样{:search=>xs.map(&:last).inject(:merge)}?@Michael:yes,或者在Rails上(&:second)。问题是,当从pairs中获取时,我觉得更清楚的是去构造(在其

有人能帮我把下面的数组转换成如下格式的散列吗

阵列

[[“0”,{“checkbox_2”=>“on”}],“2”,{“checkbox_1”=>“on”}]

散列

search=>{"checkbox_2"=>"on", "checkbox_1"=>"on"}

怎么样
{:search=>xs.map(&:last).inject(:merge)}
?@Michael:yes,或者在Rails上(&:second)。问题是,当从pairs中获取时,我觉得更清楚的是去构造(在其他语言中,这些元素是元组,而不是数组)。那么
{:search=>xs.map(&:last).inject(:merge)}
?@Michael:是的,或者是Rails上的(&:second)呢。问题是,当从pairs中获取数据时,我觉得更清楚的是去构造(在其他语言中,这些元素是元组,而不是数组)。如果哈希出现在任何位置,这种方法都可以,但是如果它总是在第二个位置,那么,如果散列出现在任何位置,这种方式是可以的,但是如果它总是在第二个位置,那么,它是不必要的卷积。
arr = [["0", {"checkbox_2"=>"on"}], ["2", {"checkbox_1"=>"on"}]] 
hash = Hash[arr.flatten.select{|e| e.is_a? Hash}.collect{|e| e.to_a.flatten}]
=> {"checkbox_2"=>"on", "checkbox_1"=>"on"}
xs = [["0", {"checkbox_2"=>"on"}], ["2", {"checkbox_1"=>"on"}]]
search = {:search => xs.map { |n, h| h }.inject(:merge)}
# {:search=>{"checkbox_2"=>"on", "checkbox_1"=>"on"}}