情報システム部の高野です。前回、Lodashについて書きましたがその続きです。Lodashを使ってるとLINQと同様の処理が名前違いで存在するのでサーバー処理とクライアント処理を行ったり来たり書いているとよく、あれ?ってなることがあります。*1(じゃ~linq.jsを使えばいいじゃないって意見はそっと棚の上に置いておくことにします)ということで備忘録的に対応表を作っておこうじゃないかと。min*4名前だけ上げておくだけだとイマイチなので特徴的なものをいくつか掘り下げてみます。"Hoge");このように基本的にはLINQでもLodashでもほぼ同じような書き方になります。一部、全然書き方が異なったり他の関数と混同しそうなものがあるのでご紹介します。ソートソートは、LINQとLodashで大きく異なります。LINQの場合は、昇順と降順で異なる関数を使うことになります。x.Id);そして結構はまるポイントなのが、複数キーによるソートです。x.Id);ThenByが正しいのですが、OrderByを重ねてもエラーにはならないので慣れてない人は間違うことが多いです。"asc"]);1つの関数で昇順・降順も書けますし複数ソートキーも1つの関数で書くことができます。(文字列での指定なのがちょっと気になるところではありますが)存在確認コレクションの中身が存在するかどうかの確認を行うのがLINQだとAny、Lodashだとsomeになります。こちらは両方とも条件指定しなければコレクションが空かどうか判断できますし条件を指定すればその条件に合致するものがあるかどうか判断できます。Lodashには、これとは別にincludesという関数があります。someの場合は、条件を式で渡すことができます。Hogeという名前があればtrueincludesの場合は、単純でその値があるかどうかだけを判定します。最初の要素を取得するのは、LINQだとFirstかFirstOrDefaultです。こちらは名前的には分かりやすいのですがLodashはfindになります。これらは両方とも条件指定がなければコレクションの最初の要素を取得します。条件指定すればその条件に合致する最初の要素を取得します。その他にLodashには、headという関数がありこれがLINQのFirstと同じ動きをするように思えるのですがこちらは、条件指定ができません。この場合は1紛らわしい......。ページング所謂、ページングを行う時に使う関数でLINQではSkipとTakeを使います。Skipでシーケンスを読み飛ばしTakeで必要数だけ要素を取り出します。これをLodashでやるには、dropとtakeを使うと同じように書けます。6Skipとdropが同じとは思えなかったので探すのが大変でした。まとめこのような感じでLINQとLodashは、同じ名前の関数もあれば全然違う名前で同じ処理をするものがあります。同じ処理を実行する関数でも指定方法が違ったりします。LINQの関数名はSQLに影響されているものが多くどちらかと言うとLINQの方が異端なのかもしれませんね。*1:よく考えればJavaScript標準の集合関数も同じことが言えますね*2:公式サイトのドキュメントだとMathというカテゴリになっているので注意*3:sum同様*4:sum同様*5:ES5以前のJavaScriptだと書き方が異なります。ES2015かTypeScriptでお試しください。Coreの汎用ホストを使ってバッチを作ってみるこんにちは、情報システム部の高野です。情報システム部の中嶋です。アットホームには2017年4月にJoinし...2017-06-08HoloLensでオブジェクトを変倍してみるこんにちは、情報システム部の高野です。情報システム部の高野です。Coreは、Window...2016-10-25LodashとLINQの対応表にRubyを足してみる(そしてSymbol#to_proc)情報システム部の山田です。新卒採用スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。