【问题标题】:Convert an Array of Strings into an Array of Hashes with same key将字符串数组转换为具有相同键的哈希数组
【发布时间】:2022-11-02 17:26:33
【问题描述】:

我有一个字符串数组:

names = ['Caitlyn', 'Jayce', 'Jinx', 'Vi']

我的目标是创建几个实例,并从这个数组中创建一次:

Champion.create!([{ name: 'Caitlyn'}, { name: 'Jayce'}, { name: 'Jinx'}, { name: 'Vi']})

从字符串数组到哈希数组的最佳方法是什么?按目前的方法如下,但了解 Ruby,一定有更好的东西:

names.map { |name| { name: name } }  

【问题讨论】:

  • 您的代码很棒,很短,易于阅读和理解。你认为什么“更好”?更短?快点?
  • 想知道是否有更简洁的方式来编写我所做的事情 - 也许是我不知道的隐藏 Ruby 方法:)

标签: ruby


【解决方案1】:

我能想到的让这个更短的唯一方法是使用在 Ruby 2.7 中引入的numbered block parameters

names = ['Caitlyn', 'Jayce', 'Jinx', 'Vi']
names.map { { name: _1 } }
#=> [{:name=>"Caitlyn"}, {:name=>"Jayce"}, {:name=>"Jinx"}, {:name=>"Vi"}]
                                          

但我不确定这是否会提高可读性。

【讨论】:

    猜你喜欢
    • 2015-04-19
    • 2023-04-03
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    相关资源
    最近更新 更多