arrays - 添加哈希数组并按哈希值排序

标签 arrays ruby

我有两个数组

arrayOne = [{:name=>"name1", :id=>1}, {:name=>"name2", :id=>2}, {:name=>"name3", :id=>3}]

arrayTwo = [{:name=>"name2.1", :id=>1}, {:name=>"name2.2", :id=>2}, {:name=>"name2.3", :id=>3}]

我想将这两个数组展平并排序成一个大数组,所以我尝试了这个

@bigArray = [arrayOne, arrayTwo].flatten.sort {|a,b| a.name <=> b.name}

但是这不起作用。我是 Rails 的新手,不确定上面的 flatten.sort 是否应该被映射? 有更好的方法吗?

最佳答案

(arrayOne + arrayTwo).sort_by { |e| e[:name] }
#=> [{:name=>"name2.1", :id=>1},
#    {:name=>"name2.1", :id=>1},
#    {:name=>"name2.2", :id=>2},
#    {:name=>"name2.2", :id=>2},
#    {:name=>"name2.3", :id=>3},
#    {:name=>"name2.3", :id=>3}]

关于arrays - 添加哈希数组并按哈希值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40652229/

相关文章:

javascript - 尝试将嵌套的 JSON 数据提取到 javascript/尝试消除 JSON 中的键但保留数据

c# - 创建一副简单的纸牌 C#

ruby - 如何从字符串中提取一定范围内的数字

javascript - GOOGLE CHARTS 使用实现折线图作为动态数组对象循环

ruby - 在 rails 中对键为 "YYYY-MM"的散列进行排序

ruby - 监听 AWS S3 中的对象变化(AWS SDK)

php - 在选中复选框的位置插入数组

arrays - 正确检测 Perl 子例程参数是否为数组

javascript - 在原型(prototype) Javascript 数组中查找对象的索引

ruby - Ruby:在具有 “string buffer”时查找文件的音频持续时间