关键词:
【中文标题】ruby 将嵌套数组转换为哈希【英文标题】:ruby turn a nested array into a hash 【发布时间】:2015-08-12 05:37:41 【问题描述】:有没有一种优雅的方式来转换表单的嵌套数组
[["a", 1], ["a", 2], [nil, 3], [nil, 4], ["b", 6], ["b", 8]]
成散列形式
"a" => [1,2], nil => [3,4], "b" => [6,8]
【问题讨论】:
【参考方案1】:array.each_with_object()|a, h| (h[a.first]||=[] )<< a.last
【讨论】:
【参考方案2】:ary = [['a', 1], ['a', 2], [nil, 3], [nil, 4], ['b', 6], ['b', 8]]
ary.group_by(&:first).map |k, v| k => v.map(&:last)
【讨论】:
你的命令的输出是哈希列表,而不仅仅是一个哈希【参考方案3】:一种方法可能是:
array = [['a', 1], ['a', 2], [nil, 3], [nil, 4], ['b', 6], ['b', 8]]
array.each_with_object(Hash.new|h,k| h[k] = []) |a, obj| obj[a.first] << a.last
# => "a"=>[1, 2], nil=>[3, 4], "b"=>[6, 8]
【讨论】:
【参考方案4】:这是一种方式:
arr = [["a", 1], ["a", 2], [nil, 3], [nil, 4], ["b", 6], ["b", 8]]
h = Hash.new |hash, key| hash[key] = []
arr.each |e| h[e[0]] << e[1]
p h #=> "a"=>[1, 2], nil=>[3, 4], "b"=>[6, 8]
【讨论】:
【参考方案5】:ary = [['a', 1], ['a', 2], [nil, 3], [nil, 4], ['b', 6], ['b', 8]]
ary.group_by(&:first).
# => 'a' => [['a', 1], ['a', 2]], nil => [[nil, 3], [nil, 4]], 'b' => [['b', 6], ['b', 8]]
map |k, v| [k, v.map(&:last)] .
# => [['a', [1, 2]], [nil, [3, 4]], ['b', [6, 8]]]
to_h
# => 'a' => [1, 2], nil => [3, 4], 'b' => [6, 8]
【讨论】:
感谢所有建议,我会选择Hash[array.group_by(&:first).map|k,v| [k, v.map(&:last)]]
,因为我认为它是最易读的(?)将数组的Ruby数组转换为哈希
】将数组的Ruby数组转换为哈希【英文标题】:ConvertingRubyarrayofarrayintoahash【发布时间】:2021-11-2516:40:03【问题描述】:我有一个数组如下:[["2021-07-26T11:38:42.000+09:00",1127167],["2021-08-26T11:38:42.000+09:00",1127170],["2021-09-26T11:38:42.000+09:00"... 查看详情
ruby将哈希值转换为排序的字符串数组,以便与另一个哈希值进行比较(代码片段)
在Ruby中将数组转换为哈希的最佳方法是啥
】在Ruby中将数组转换为哈希的最佳方法是啥【英文标题】:WhatisthebestwaytoconvertanarraytoahashinRuby在Ruby中将数组转换为哈希的最佳方法是什么【发布时间】:2010-09-0713:30:00【问题描述】:在Ruby中,给定以下形式之一的数组...[apple,1,... 查看详情
Rails:如何将对象数组的哈希转换为 json
】Rails:如何将对象数组的哈希转换为json【英文标题】:Rails:Howtoconverthashofarrayofobjectstojson【发布时间】:2021-12-0316:20:18【问题描述】:我是一名java和Js开发人员,所以我对rails和ruby完全陌生。在我的一个项目中,我使用rail... 查看详情
使用键数组遍历嵌套的 Ruby 哈希
】使用键数组遍历嵌套的Ruby哈希【英文标题】:TraverseNestedRubyHashWithArrayofKeys【发布时间】:2017-04-0300:28:07【问题描述】:给定一个包含n层嵌套值、一个字段名和一个路径的散列contact="Email"=>"bob@bob.com","Account"=>"Exchange"=>tru... 查看详情
Ruby 将对象转换为哈希
】Ruby将对象转换为哈希【英文标题】:RubyconvertObjecttoHash【发布时间】:2011-06-2904:03:48【问题描述】:假设我有一个带有@name="book"和@price=15.95的Gift对象。将其转换为Ruby中的Hashname:"book",price:15.95而不是Rails的最佳方... 查看详情
将 Ruby 哈希转换为 YAML
】将Ruby哈希转换为YAML【英文标题】:ConvertRubyHashintoYAML【发布时间】:2013-07-0817:26:55【问题描述】:我需要将下面提供的哈希转换为可读的YAML。看起来我可以提供YAML::load一个字符串,但我想我需要先将它转换成这样的:hostname1... 查看详情
如何将 JSON 转换为 Ruby 哈希
】如何将JSON转换为Ruby哈希【英文标题】:HowtoconvertJSONtoaRubyhash【发布时间】:2011-12-1908:10:46【问题描述】:我有一个JSON对象包含以下值:@value="val":"test","val1":"test1","val2":"test2"我想在Ruby中遍历它以获取键/值对。当我使用@each时... 查看详情
如何将 yaml 文件解析为 ruby 哈希和/或数组?
】如何将yaml文件解析为ruby哈希和/或数组?【英文标题】:Howtoparseayamlfileintorubyhashsand/orarrays?【发布时间】:2011-03-2917:47:13【问题描述】:我需要将yaml文件加载到哈希中,我该怎么办?【问题讨论】:请更新您选择的答案... 查看详情
将 Nokogiri 文档转换为 Ruby 哈希
】将Nokogiri文档转换为Ruby哈希【英文标题】:ConvertaNokogiridocumenttoaRubyHash【发布时间】:2010-11-1620:59:47【问题描述】:有没有一种简单的方法可以将NokogiriXML文档转换为哈希?类似于Rails的Hash.from_xml。【问题讨论】:实际上,Rails... 查看详情
如何表示将 ruby 哈希转换为 yaml 的 aws 内部函数
】如何表示将ruby哈希转换为yaml的aws内部函数【英文标题】:Howtorepresentawsinternalfunctionstoconvertrubyhashtoyaml【发布时间】:2018-06-1603:35:10【问题描述】:我正在尝试从ruby哈希生成AWScloudformationYAML。但我无法弄清楚如何在rub... 查看详情
如何将 Ruby 哈希转换为 XML?
】如何将Ruby哈希转换为XML?【英文标题】:HowdoIconvertaRubyhashtoXML?【发布时间】:2010-12-1622:18:43【问题描述】:这是我最终需要的特定XML:<?xmlversion="1.0"encoding="UTF-8"?><customer><email>joe@example.com</email><first_name>... 查看详情
将 Ruby 哈希转换为 JSON(不带转义字符)
】将Ruby哈希转换为JSON(不带转义字符)【英文标题】:ConvertaRubyHashintoJSON(withoutescapecharacters)【发布时间】:2014-10-2019:43:22【问题描述】:我有一个哈希:my_hash="bob.johnson@example.com"=>"first"=>"Bob","last"=>"Johnson","lisa.dell@example.... 查看详情
使用 ruby 将多个实例变量转换为哈希的更好方法?
】使用ruby将多个实例变量转换为哈希的更好方法?【英文标题】:Betterwaytoconvertseveralinstancevariablesintohashwithruby?【发布时间】:2011-11-3003:20:16【问题描述】:我收到了格式为的回复#<Response:0x000...@first="Charlie",@last=Kelly,....... 查看详情
将 json 格式的键值对转换为以符号为键的 ruby 哈希的最佳方法是啥?
】将json格式的键值对转换为以符号为键的ruby哈希的最佳方法是啥?【英文标题】:whatisthebestwaytoconvertajsonformattedkeyvaluepairtorubyhashwithsymbolaskey?将json格式的键值对转换为以符号为键的ruby哈希的最佳方法是什么?【发布时... 查看详情
Ruby 哈希组合
...个选项都有一系列选项)转换为代表这些选项组合的散列数组。例如:#Input::color=>["blue","grey"],:size=>["s","m","l"]#Output:[:color=>"blue",:size=>"s",: 查看详情