るりまサーチ

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

別のキーワード

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

ライブラリ

キーワード

検索結果

<< < 1 2 >>

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

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

...まり、以下とほぼ同じ動作をします。

//emlist[例][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 が優れている点として、
比較条件が...
...rand(v) }

$n = 0
ary.sort {|a,b| a.count <=> b.count }
p $n # => 18200

$n = 0
ary.sort_by {|v| v.count }
p $n # => 1000
//}

Enumerable
#sort_by は安定ではありません (unstable sort)。
ただし、sort_by を以下のように使うと安定なソートを実装でき...
...ます。

//emlist[][ruby]{
i = 0
ary.sort_by {|v| [v, i += 1] }
//}

※ 比較結果が同じ要素は元の順序通りに並ぶソートを
「安定なソート (stable sort)」と言います。

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


@see Enumerable#sort...

Enumerable#collect_concat -> Enumerator (18.0)

各要素をブロックに渡し、その返り値を連結した配列を返します。

...ックに渡し、その返り値を連結した配列を返します。

ブロックの返り値は基本的に配列を返すべきです。

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

//emlist[例][ruby]{
[[1,2], [3,4]].flat_map{|i| i.map{|j| j*2}} # => [2,4,6,8]
//}...

Enumerable#sum(init=0) -> object (14.0)

要素の合計を返します。

...#=> [1, 10, 2, 20]
"a\nb\nc".each_line.lazy.map(&:chomp).sum("") #=> "abc"
[[1], [[2]], [3]].sum([]) #=> [1, [2], 3]
//}

"+" メソッドが再定義されている場合、Enumerable#sum は再定義を無視することがあります(例えばInteger#+)。

@see Array#sum...

Enumerable#sum(init=0) {|e| expr } -> object (14.0)

要素の合計を返します。

...#=> [1, 10, 2, 20]
"a\nb\nc".each_line.lazy.map(&:chomp).sum("") #=> "abc"
[[1], [[2]], [3]].sum([]) #=> [1, [2], 3]
//}

"+" メソッドが再定義されている場合、Enumerable#sum は再定義を無視することがあります(例えばInteger#+)。

@see Array#sum...
<< < 1 2 >>