721件ヒット
[701-721件を表示]
(0.015秒)
ライブラリ
- ビルトイン (721)
キーワード
- chain (6)
- chunk (11)
-
chunk
_ while (11) - collect (22)
-
collect
_ concat (22) - cycle (22)
- detect (22)
-
drop
_ while (22) -
each
_ cons (22) -
each
_ entry (22) -
each
_ slice (22) -
each
_ with _ index (22) -
each
_ with _ object (22) - filter (12)
-
filter
_ map (10) - find (22)
-
find
_ all (22) -
find
_ index (33) -
flat
_ map (22) -
group
_ by (22) - lazy (11)
- map (22)
-
max
_ by (44) -
min
_ by (44) -
minmax
_ by (22) - partition (22)
- reject (22)
-
reverse
_ each (22) - select (22)
-
slice
_ after (22) -
slice
_ before (22) -
slice
_ when (11) -
sort
_ by (22) -
take
_ while (22)
検索結果
-
Enumerable
# sort _ by {|item| . . . } -> [object] (9.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 を使わ......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
# take _ while {|element| . . . } -> Array (9.0) -
Enumerable オブジェクトの要素を順に偽になるまでブロックで評価します。 最初に偽になった要素の手前の要素までを配列として返します。
...
Enumerable オブジェクトの要素を順に偽になるまでブロックで評価します。
最初に偽になった要素の手前の要素までを配列として返します。
//emlist[例][ruby]{
e = [1, 2, 3, 4, 5, 0].each
e.take_while {|i| i < 3 } # => [1, 2]
//}
ブロックを......省略した場合は Enumerator を返します。
@see Array#take_while...