开发者社区> 问答> 正文

Rails将哈希数组映射到单个哈希

我有这样一个哈希数组:

[{"testPARAM1"=>"testVAL1"}, {"testPARAM2"=>"testVAL2"}] 我正在尝试将此映射到单个哈希,如下所示:

{"testPARAM2"=>"testVAL2", "testPARAM1"=>"testVAL1"} 我已经实现了

par={} mitem["params"].each { |h| h.each {|k,v| par[k]=v} } 但是我想知道是否有可能以更惯用的方式进行此操作(最好不使用局部变量)。

我怎样才能做到这一点? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 13:46:30 384 0
1 条回答
写回答
取消 提交回答
  • 您可以撰写Enumerable#reduce并Hash#merge完成您想要的。

    input = [{"testPARAM1"=>"testVAL1"}, {"testPARAM2"=>"testVAL2"}] input.reduce({}, :merge) is {"testPARAM2"=>"testVAL2", "testPARAM1"=>"testVAL1"} 减少数组的排序就像在每个元素之间插入一个方法调用。

    例如[1, 2, 3].reduce(0, :+)说0 + 1 + 2 + 3和给6。

    在我们的例子中,我们执行了类似的操作,但是使用了合并功能,该功能合并了两个哈希。

    [{:a => 1}, {:b => 2}, {:c => 3}].reduce({}, :merge) is {}.merge({:a => 1}.merge({:b => 2}.merge({:c => 3}))) is {:a => 1, :b => 2, :c => 3}

    2020-02-08 13:46:42
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载