コンパイラかく語りき

import { Fun } from 'programming'

Underscore.jsを学ぶ part.4

どうも!chuckです。

引き続きUnderscore.jsの勉強をしていきます。

 

chuckwebtips.hatenablog.com

 

 

今回は集合に関するメソッドを使っていきます。

 

union

unionを使うとor集合として、重複を排除した集合が得られます。

f:id:chuck0523:20150822151639p:plain

[1, 2, 5]と[5, 2, 8]のor集合は[1, 2, 5, 8]となります。

 

intersection

intersectionを使うと、和集合として重複している部分のみ取得できます。

f:id:chuck0523:20150822152034p:plain

重複しているのは2と5なので、[2, 5]が得られます。

 

difference

differenceを使うと、片方のみが持つ要素を取得できます。

f:id:chuck0523:20150822152233p:plain

この場合、配列aにあって配列bにはない要素を返すので、1が取得できます。

 

unique

uniqueを使うと、引数に与えられた要素から重複を排除します。

f:id:chuck0523:20150822152428p:plain

 

ザックリとですが、集合関連のメソッドを見ていきました。

 

JavaScriptで書く

毎度のごとく、JavaScriptで書き換えてみます。

union

f:id:chuck0523:20150822155840p:plain

さすがに長いですね…笑

 

intersection

f:id:chuck0523:20150822160702p:plain

unionよりかはカンタンでした。

 

difference 

f:id:chuck0523:20150822162049p:plain

こんな感じでしょうか。関数として外部化する必要はなかったかも…。

 

unique

f:id:chuck0523:20150822163009p:plain

ほぼUnionと一緒ですかね。こんな感じになりました。

 

まとめ

今までと比べると、JavaScriptで書いた場合の記述が増えてきました。アルゴリズム的にも複雑になってきて、そろそろ僕の能力がギブアップしそうです。

次回あたりは自力で書けないかもしれません笑 でも、それならますますUnderscoreの恩恵が大きくなりますね!次回に乞うご期待です。

 

書いたコード

gist2a0dd27e1f6a1d69cf05

 

参考にしたサイト

dotinstall.com