Làm cách nào để sắp xếp điều này:Làm thế nào để sắp xếp một chuỗi Ruby theo chuỗi?
arr = ["aaa","aa","aaaa","a","aaaaa"];
?
arr = ["a","aa","aaa","aaaa","aaaaa"];
Làm cách nào để sắp xếp điều này:Làm thế nào để sắp xếp một chuỗi Ruby theo chuỗi?
arr = ["aaa","aa","aaaa","a","aaaaa"];
?
arr = ["a","aa","aaa","aaaa","aaaaa"];
arr = arr.sort_by {|x| x.length}
Hoặc trong 1.8.7+:
arr = arr.sort_by(&:length)
Bạn cũng có thể sử dụng sort
:
arr.sort{|x, y| x.length <=> y.length}
arr = arr.sort{|x,y| x.length - y.length}
làm việc quá.
Xin lỗi vì đã nhận xét về bài đăng cũ như vậy, nhưng bạn có thể giải thích về & độ dài là gì và tại sao nó hoạt động? Là nó gọi chiều dài phương pháp? Ý nghĩa của & là gì? –
@DanR Có, nó gọi phương thức 'length' trên mỗi mục được tạo bởi' sort_by' - giống như dòng đầu tiên. Toán tử '&' tiền tố chuyển đổi một đối tượng (đặc biệt là đối tượng Proc hoặc đối tượng bất kỳ có phương thức 'to_proc', biểu tượng đối tượng làm) cho một khối. Trong trường hợp các ký hiệu sẽ là một khối gọi phương thức với tên đã cho trên đối số của nó (vì đó là cách 'Symbol # to_proc' được định nghĩa). – sepp2k