如何在Ruby中查找,返回和删除数组中的最大值?

mal*_*ers 3 ruby arrays

我想在整数数组中找到最大值,返回该值,并将其从数组中删除.这有内置功能吗?

因为a = [1,2,3,4],我可以很容易地做到这a.max一点返回4.但是,a[....]保持不变.

use*_*016 6

你可以这样做.

a = [1,2,3,4]
a.delete(a.max)
=> 4
a => [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

要删除单个实例,如果有重复项,您可以使用类似的内容(根据注释,使用a.index(a.max)获取最大值的索引)

a = [1, 2, 3, 4, 4]
a.delete_at(a.index(a.max))
=> 4
a => [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

  • 你可以做`a.delete_at(a.index(a.max))` (2认同)