1

Rubyで配列内の値を互いに比較するにはどうすればよいですか?

配列内の値を比較して、配列の最大値を確認したいと思います。

4

4 に答える 4

5

最大値を見つけたいですか?それはすでに行われています。

[1, 5, 3].max # => 5
于 2012-10-15T04:51:34.913 に答える
1

整数を比較する場合は、

[1,3,2].max will do the work

文字列形式で格納されている整数を比較する場合は、次を試してください。

["1","3","2"].map(&:to_i).max

最初に文字列配列を int 配列に変換し、 max メソッドを適用します

このような比較を頻繁に使用する場合は、実際の配列を int 形式で保存することをお勧めします。これにより、実際にサーバーの作業時間を節約できます。

于 2012-10-15T11:28:47.983 に答える
1

Ruby 配列 (または Enumerable モジュールを含むもの) にはmaxメソッドがあります:

a = [20, 30, 100, 2, 3]
a.max # => 100

教育目的で独自のものを書きたい場合は、各ポイントで見られる最大値を保持しながら、配列を反復処理できます。

class Array
  def my_max
    max = nil # Default "max" to nil, since we haven't seen any values yet.
    self.each { |x| max = x if (!x || x>max) } # Update with bigger value(s).
    max # Return the max value discovered.
  end
end

または、関数型プログラミングに興味がある場合は、Enumerablereduceメソッドmy_maxの使用を検討してください。これは、バージョンのプロセスを一般化し、簡潔にするために三項演算子を使用します。

class Array
  def my_max2
    self.reduce(nil) { |max,x| (!max || x>max) ? x : max }
  end
end
于 2012-10-15T04:51:54.923 に答える
0

あなたは単に呼び出すことができますmax

a = [1,2,3,4]
a.max # outputs 4

また、あなたができる最小値について

a.min # outputs 1
于 2012-10-15T04:54:02.250 に答える