当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Array.sort_by用法及代码示例


Array.sort_by 方法

在本文中,我们将研究 Array.sort_by 方法。你们一定认为该方法必须做一些与 Array 实例中的元素或对象的排序相关的事情。它并不像看起来那么简单。好吧,我们将在其余内容中解决这个问题。我们将尝试借助语法和演示程序代码来理解它。

方法说明:

此方法是一个公共实例方法,是为 Ruby 库中的 Array 类定义的。此方法的用法方式是在对调用该方法的 Array 进行排序后返回一个新 Array。此方法需要某些参数,在此基础上进行排序。您必须在块内说明该标准。如果您在没有块的情况下调用此方法,则该方法将返回一个枚举数。此方法不会对 self Array 中对象的实际排列产生影响,因为此方法属于非破坏性方法的类别,其中方法创建的更改是暂时的或非永久性的。

用法:

    array_instance.sort_by -> Enumerator
    or
    array_instance.sort_by{|object| block}-> new_array

所需参数:

此方法不接受任何参数。相反,如果您想根据某些标准进行排序,则必须传递一个块。

范例1:

=begin
  Ruby program to demonstrate sort_by method
=end

# array declaration
table = ["Subha","Sham","Raat","Vivek","Me","Amisha","Zain","Harsh","Bajwa"]

puts "Array sort_by implementation"
new_arr = table.sort_by{|string| string.size}

puts "Array after sorting:#{new_arr}"
puts "Original Array instance:#{table}"

输出

Array sort_by implementation
Array after sorting:["Me", "Sham", "Raat", "Zain", "Subha", "Vivek", "Harsh", "Bajwa", "Amisha"]
Original Array instance:["Subha", "Sham", "Raat", "Vivek", "Me", "Amisha", "Zain", "Harsh", "Bajwa"]

说明:

在上面的代码中,您可以观察到我们在 Array.sort_by 方法的帮助下对 Array 实例进行排序。我们正在根据其长度或大小对 Array 对象进行排序。您可以看到对象 "me" 的长度最小,这就是为什么它是新数组的第一个元素。此方法不会对原始 Array 实例产生影响,因为此方法是非破坏性方法的示例之一。

范例2:

=begin
  Ruby program to demonstrate sort_by method
=end

# array declaration
table = ["Subha","Sham","Raat","Vivek","Me","Amisha","Zain","Harsh","Bajwa"]

puts "Array sort_by implementation"
new_arr = table.sort_by

puts "Array after sorting:#{new_arr}"
puts "Original Array instance:#{table}"

输出

Array sort_by implementation
Array after sorting:#<Enumerator:0x000055dabc680870>
Original Array instance:["Subha", "Sham", "Raat", "Vivek", "Me", "Amisha", "Zain", "Harsh", "Bajwa"]

说明:

在上面的输出中,您可以注意到该方法在没有块的情况下被调用时返回了一个枚举器。



相关用法


注:本文由纯净天空筛选整理自 Array.sort_by Method with Example in Ruby。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。