underscore | Scala |
---|---|
each(list, iterator, [context] forEach | foreach |
map(list, iterator, [context]) collect | map |
reduce(list, iterator ,memo, [context]) inject, foldl | memoを渡せばfoldLeft、memoなしならreduceLeft |
reduceRight(list, iterator ,memo, [context]) foldr | memoを渡せばfoldRight、memoなしならreduceRight |
find(list, iterator, [context]) detect | Scalaの場合Optionだが、underscoreでは一致するものが無ければndefinedが返る |
filter(list, iterator, [context]) select | filter |
where(list, properties) | なし。あえて言うなら、返る型や目的としてはfilterが近いだろうか |
findWhere(list, properties) | underscoreのwhereの最初に見つかった1つを返すversion。これも上記と同じく直接対応するものない |
reject(list, iterator, [context]) | filterNot |
every(list, iterator, [context]) all | forall |
some(list, [iterator], [context]) any | exists。2つめの引数もオプションになってるのはJSっぽい |
contains(list, value) include | contains |
invoke(list, methodName, [*arguments]) | なし。そもそもコレクションの操作じゃないような。 |
pluck(list, propertyName) | なし |
max(list, [iterator], [context]) | 引数1つならmax。引数2つならmaxBy |
min(list, [iterator], [context]) | 引数1つならmin。引数2つならminBy |
sortBy(list, iterator, [context]) | sortBy |
groupBy(list, iterator, [context]) | groupBy |
countBy(list, iterator, [context]) | groubByしてmapValues(_.size) |
shuffle(list) | scala.util.Random.shuffle |
toArray(list) | toArray |
size(list) | size |
underscore | Scala |
---|---|
first | head。引数2つのものはtake |
initial | init。引数2つだと、dropRight |
last | last。引数2つだと、takeRight |
rest tail,drop | tail。引数2つだと、drop |
compact | なし |
flatten | flattenに近いが、Rubyのflattenのように、デフォルトでは複数のネストを全部flatにする |
without | filterNot(_.contains()))。もしくはSetの- |
union | Setのunion |
intersection | Setのintersect |
difference | diff |
uniq unique | distinct |
zip | Listなどのzip。もしくは Tuple2やTuple3のzipped |
object | なし |
indexOf | indexOf |
lastIndexOf | lastIndexOf |
sortedIndex | なし? |
range | Rangeの各種関数 |