るりまサーチ

最速Rubyリファレンスマニュアル検索!
120件ヒット [1-100件を表示] (0.027秒)

別のキーワード

  1. array fill
  2. array []
  3. array sample
  4. array count
  5. array []=

ライブラリ

キーワード

検索結果

<< 1 2 > >>

Enumerable#sort_by -> Enumerator (6211.0)

ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。

...][ruby]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort
{|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}

Enumerable
#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort
_by を使わ...
...れます。
従って downcase の実行速度が遅ければ sort の速度が致命的に低下します。

//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort {|a, b| a.downcase <=> b.downcase }
//}

一方、次のように sort_by を使うと downcase の実行回数は要素数と同じ...
..."BAR", "FOO", "bar", "foo"].sort_by {|v| v.downcase }
//}

以下の、実行回数の検証結果を参照してみてください。

//emlist[][ruby]{
class Integer
def count
$n += 1
self
end
end

ary = []
1.upto(1000) {|v| ary << rand(v) }

$n = 0
ary.sort {|a,b| a.count <=> b.count...

Enumerable#sort_by {|item| ... } -> [object] (6211.0)

ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。

...][ruby]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort
{|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}

Enumerable
#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort
_by を使わ...
...れます。
従って downcase の実行速度が遅ければ sort の速度が致命的に低下します。

//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort {|a, b| a.downcase <=> b.downcase }
//}

一方、次のように sort_by を使うと downcase の実行回数は要素数と同じ...
..."BAR", "FOO", "bar", "foo"].sort_by {|v| v.downcase }
//}

以下の、実行回数の検証結果を参照してみてください。

//emlist[][ruby]{
class Integer
def count
$n += 1
self
end
end

ary = []
1.upto(1000) {|v| ary << rand(v) }

$n = 0
ary.sort {|a,b| a.count <=> b.count...

Enumerable#max_by(n) {|item| ... } -> Array (120.0)

各要素を順番にブロックに渡して実行し、 その評価結果を <=> で比較して、 最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

...返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。

Enumerable
#max と Enumerable#max_by の
違いは Enumerable#sort Enumerable#sort_by の違いと同じです。

ブロックを省略した場合は Enumerator を返します。

@para...
...n)は、重み付きランダムサンプリングを実装するために使用できます。次の実装例は、Enumerable#wsampleを使用します。][ruby]{
module Enumerable
# weighted random sampling.
#
# Pavlos S. Efraimidis, Paul G. Spirakis
# Weighted random sampling with a res...
...***
# **************************************************************
# ****************************************************
# ***************************************
# ***************************
# ******************
# ***********
# *******
# ***
# *
//}

@see Enumerable#sort_by...

Enumerable#min_by(n) {|item| ... } -> Array (120.0)

各要素を順番にブロックに渡して評価し、 その評価結果を <=> で比較して、 最小であった値に対応する元の要素、もしくは最小の n 要素が昇順で入った配列を返します。

...要素を返すかは不定です。

ブロックを省略した場合は Enumerator を返します。

Enumerable
#min と Enumerable#min_by の
違いは Enumerable#sort Enumerable#sort_by の違いと同じです。

@param n 取得する要素数。

//emlist[例][ruby]{
a = %w(albatross do...
...horse)
a.min_by # => #<Enumerator: ["albatross", "dog", "horse"]:min_by>
a.min_by { |x| x.length } # => "dog"
a.min_by(2) # => #<Enumerator: ["albatross", "dog", "horse"]:min_by(2)>
a.min_by(2) {|x| x.length } # => ["dog", "horse"]
//}

@see Enumerable#sort_by...

Enumerable#max_by -> Enumerator (20.0)

各要素を順番にブロックに渡して実行し、 その評価結果を <=> で比較して、 最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

...返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。

Enumerable
#max と Enumerable#max_by の
違いは Enumerable#sort Enumerable#sort_by の違いと同じです。

ブロックを省略した場合は Enumerator を返します。

@para...
...n)は、重み付きランダムサンプリングを実装するために使用できます。次の実装例は、Enumerable#wsampleを使用します。][ruby]{
module Enumerable
# weighted random sampling.
#
# Pavlos S. Efraimidis, Paul G. Spirakis
# Weighted random sampling with a res...
...***
# **************************************************************
# ****************************************************
# ***************************************
# ***************************
# ******************
# ***********
# *******
# ***
# *
//}

@see Enumerable#sort_by...

絞り込み条件を変える

Enumerable#max_by {|item| ... } -> object | nil (20.0)

各要素を順番にブロックに渡して実行し、 その評価結果を <=> で比較して、 最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

...返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。

Enumerable
#max と Enumerable#max_by の
違いは Enumerable#sort Enumerable#sort_by の違いと同じです。

ブロックを省略した場合は Enumerator を返します。

@para...
...n)は、重み付きランダムサンプリングを実装するために使用できます。次の実装例は、Enumerable#wsampleを使用します。][ruby]{
module Enumerable
# weighted random sampling.
#
# Pavlos S. Efraimidis, Paul G. Spirakis
# Weighted random sampling with a res...
...***
# **************************************************************
# ****************************************************
# ***************************************
# ***************************
# ******************
# ***********
# *******
# ***
# *
//}

@see Enumerable#sort_by...

Enumerable#max_by(n) -> Enumerator (20.0)

各要素を順番にブロックに渡して実行し、 その評価結果を <=> で比較して、 最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

...返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。

Enumerable
#max と Enumerable#max_by の
違いは Enumerable#sort Enumerable#sort_by の違いと同じです。

ブロックを省略した場合は Enumerator を返します。

@para...
...n)は、重み付きランダムサンプリングを実装するために使用できます。次の実装例は、Enumerable#wsampleを使用します。][ruby]{
module Enumerable
# weighted random sampling.
#
# Pavlos S. Efraimidis, Paul G. Spirakis
# Weighted random sampling with a res...
...***
# **************************************************************
# ****************************************************
# ***************************************
# ***************************
# ******************
# ***********
# *******
# ***
# *
//}

@see Enumerable#sort_by...

Enumerable#min_by -> Enumerator (20.0)

各要素を順番にブロックに渡して評価し、 その評価結果を <=> で比較して、 最小であった値に対応する元の要素、もしくは最小の n 要素が昇順で入った配列を返します。

...要素を返すかは不定です。

ブロックを省略した場合は Enumerator を返します。

Enumerable
#min と Enumerable#min_by の
違いは Enumerable#sort Enumerable#sort_by の違いと同じです。

@param n 取得する要素数。

//emlist[例][ruby]{
a = %w(albatross do...
...horse)
a.min_by # => #<Enumerator: ["albatross", "dog", "horse"]:min_by>
a.min_by { |x| x.length } # => "dog"
a.min_by(2) # => #<Enumerator: ["albatross", "dog", "horse"]:min_by(2)>
a.min_by(2) {|x| x.length } # => ["dog", "horse"]
//}

@see Enumerable#sort_by...

Enumerable#min_by {|item| ... } -> object | nil (20.0)

各要素を順番にブロックに渡して評価し、 その評価結果を <=> で比較して、 最小であった値に対応する元の要素、もしくは最小の n 要素が昇順で入った配列を返します。

...要素を返すかは不定です。

ブロックを省略した場合は Enumerator を返します。

Enumerable
#min と Enumerable#min_by の
違いは Enumerable#sort Enumerable#sort_by の違いと同じです。

@param n 取得する要素数。

//emlist[例][ruby]{
a = %w(albatross do...
...horse)
a.min_by # => #<Enumerator: ["albatross", "dog", "horse"]:min_by>
a.min_by { |x| x.length } # => "dog"
a.min_by(2) # => #<Enumerator: ["albatross", "dog", "horse"]:min_by(2)>
a.min_by(2) {|x| x.length } # => ["dog", "horse"]
//}

@see Enumerable#sort_by...

Enumerable#min_by(n) -> Enumerator (20.0)

各要素を順番にブロックに渡して評価し、 その評価結果を <=> で比較して、 最小であった値に対応する元の要素、もしくは最小の n 要素が昇順で入った配列を返します。

...要素を返すかは不定です。

ブロックを省略した場合は Enumerator を返します。

Enumerable
#min と Enumerable#min_by の
違いは Enumerable#sort Enumerable#sort_by の違いと同じです。

@param n 取得する要素数。

//emlist[例][ruby]{
a = %w(albatross do...
...horse)
a.min_by # => #<Enumerator: ["albatross", "dog", "horse"]:min_by>
a.min_by { |x| x.length } # => "dog"
a.min_by(2) # => #<Enumerator: ["albatross", "dog", "horse"]:min_by(2)>
a.min_by(2) {|x| x.length } # => ["dog", "horse"]
//}

@see Enumerable#sort_by...

絞り込み条件を変える

<< 1 2 > >>