我有两个数组
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/