Motomichi Works Blog

その日学習したことについて書いている日記です。誰かの役に立ったらそれはそれで嬉しいです。

Lodash 4.x その0001 個人的index

はじめに

個人的に少しずつ公式ドキュメントを読んで学習を進めます。

公式ドキュメントを読んで解りにくかったり、こういう場合はどうなのかと疑問に思ったものはサンプルを自分で書いてみるかもです。

Array

_.chunk(array, [size=1])

配列をn個ごとに分割します。

_.compact(array)

すべての偽値が削除された配列を作成します。 値false、null、0、 “"、未定義、およびNaNはfalseです。

_.concat(array, [values])

配列を連結します。

_.difference(array, [values])

二つの配列を比較して、第一引数に渡した配列要素のうち一致しないものだけを返します。

等価比較のためにSameValueZeroを使用して、他の配列に含まれていない配列値の配列を作成します。 結果値の順序と参照は、最初の配列によって決定されます。

_.differenceBy(array, [values], [iteratee=_.identity])

difference()と違う点としては、第三引数に渡した関数の戻り値を比較する点です。

このメソッドは、配列の各要素と値が比較される基準を生成するために呼び出されるiterateeを受け入れることを除けば、_differenceに似ています。 結果値の順序と参照は、最初の配列によって決定されます。 iterateeは1つの引数で呼び出されます。

_.differenceWith(array, [values], [comparator])

difference()と違う点としては、第三引数にによって条件を指定できる点です。
公式ドキュメントの例では_.isEqualを渡していますが、より複雑な条件などにも利用できそうです。

This method is like _.difference except that it accepts comparator which is invoked to compare elements of array to values. The order and references of result values are determined by the first array. The comparator is invoked with two arguments: (arrVal, othVal).

_.drop(array, [n=1])

n個の要素を先頭から削除した配列のスライスを作成します。

_.dropRight(array, [n=1])

最後からn個の要素を削除した配列のスライスを作成します。

_.dropRightWhile(array, [predicate=_.identity])

最後から削除された要素を除いた配列のスライスを作成します。 述語が偽を返すまで、要素は削除されます。 述部は、(value、index、array)という3つの引数で呼び出されます。

_.dropWhile(array, [predicate=_.identity])

最初から削除された要素を除いた配列のスライスを作成します。 述語が偽を返すまで、要素は削除されます。 述部は、(value、index、array)という3つの引数で呼び出されます。

_.fill(array, value, [start=0], [end=array.length])

公式ドキュメントの例を見るかぎり、第三引数は配列のindexで第四引数はlengthなんですかね。ちょっと注意が必要そうです。

配列の要素をstartからendまでの値で塗りつぶします。

_.findIndex(array, [predicate=_.identity], [fromIndex=0])

条件に最初に一致した配列要素のindexを返します。
一致しない場合は-1を返します。
_.indexOf()よりも複雑な条件が指定できます。

このメソッドは、最初の要素述部の索引を戻す点を除いて、_.findに似ています。

_.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1])

このメソッドは、コレクションの要素を右から左に繰り返す点を除けば、_.findIndexに似ています。

_.flatten(array)

配列要素として配列が含まれる場合、一階層展開します。

_.flattenDeep(array)

配列要素として配列が含まれる場合、深い階層のものまで全て展開します。

Recursively flattens array.

_.flattenDepth(array, [depth=1])

第二引数で展開する深さを指定します。
第二引数に1を渡すと、_.flatten()と同じ結果が得られます。

_.fromPairs(pairs)

要素が二つずつ入っている二次元配列をkeyとvalueにして、連想配列に変換します。

_.toPairsの逆。 このメソッドは、キーと値のペアから構成されるオブジェクトを返します。

_.head(array)

arrayの最初の要素を取得します。

_.indexOf(array, value, [fromIndex=0])

条件に最初に一致した配列要素のindexを返します。
一致しない場合は-1を返します。

等価比較のためにSameValueZeroを使用して、arrayの最初に現れる値が見つかるインデックスを取得します。 fromIndexが負の場合、配列の最後からのオフセットとして使用されます。

_.initial(array)

arrayの最後の要素を除くすべてを取得します。

_.intersection([arrays])

二つの配列を比較して、第一引数に渡した配列要素のうち一致するものだけ一意な値として返します。

等価比較のためにSameValueZeroを使用して、指定されたすべての配列に含まれる一意の値の配列を作成します。 結果値の順序と参照は、最初の配列によって決定されます。

_.intersectionBy([arrays], [iteratee=_.identity])

intersection()と違う点としては、第三引数に渡した関数の戻り値を比較する点です。

このメソッドは、各配列の各要素に対して呼び出されたiterateeを受け入れて比較する基準を生成するという点を除けば、_.intersectionと似ています。 結果値の順序と参照は、最初の配列によって決定されます。 iterateeは1つの引数で呼び出されます。

_.intersectionWith([arrays], [comparator])

intersection()と違う点としては、第三引数にによって条件を指定できる点です。
公式ドキュメントの例では_.isEqualを渡していますが、より複雑な条件などにも利用できそうです。

このメソッドは、配列の要素を比較するために呼び出されるコンパレータを受け入れるという点を除けば、_.intersectionと似ています。 結果値の順序と参照は、最初の配列によって決定されます。 コンパレータは、(arrVal、othVal)という2つの引数で呼び出されます。