【发布时间】:2011-03-11 11:25:50
【问题描述】:
我该如何排序:
arr = ["aaa","aa","aaaa","a","aaaaa"];
喜欢这个吗?
arr = ["a","aa","aaa","aaaa","aaaaa"];
【问题讨论】:
我该如何排序:
arr = ["aaa","aa","aaaa","a","aaaaa"];
喜欢这个吗?
arr = ["a","aa","aaa","aaaa","aaaaa"];
【问题讨论】:
arr = arr.sort_by {|x| x.length}
或在 1.8.7+ 中:
arr = arr.sort_by(&:length)
【讨论】:
sort_by 产生的每个项目上调用方法length - 就像第一行一样。前缀 & 运算符将对象(特别是 Proc 对象或具有 to_proc 方法的任何对象,符号对象执行此操作)转换为块。如果符号将是一个块,它会在其参数上调用具有给定名称的方法(这就是 Symbol#to_proc 的定义方式)。
你也可以使用sort:
arr.sort{|x, y| x.length <=> y.length}
【讨论】:
arr = arr.sort{|x,y| x.length - y.length} 也可以。
【讨论】: