lodash のArray/Object/Collection系の関数は非常に多く、どれがどれか混乱しがち。これらを探しやすくするために、索引として使えるように分類してみました。
※1: 渡された配列/オブジェクト自体を変更しない。
※2: 渡された配列/オブジェクト自体を変更する。
[Array] 分割・結合 [※1]
[Array] 除去 [※1]
-
compact : false 的な値除去
_.compact(array) -
drop : 先頭n個撤去
_.drop(array, [n=1]) -
dropRight : 末尾n個撤去
_.dropRight(array, [n=1]) -
dropWhile : 先頭から評価成立してる限り撤去
_.dropWhile(array, [predicate=_.identity]) -
dropRightWhile : 末尾から評価成立してる限り撤去
_.dropRightWhile(array, [predicate=_.identity]) -
without : values に合致する値撤去
_.without(array, [values])
[Array] 除去 [※2]
-
pull : values に合致する値撤去
_.pull(array, [...values]) -
pullAt : 指定の場所撤去
_.pullAt(array, [indexes]) -
remove : 合致するものを撤去
_.remove(array, [predicate=_.identity])
[Array] 集合 [※1]
-
difference : 差集合
_.difference(array, [values]) -
differenceBy : 差集合
_.differenceBy(array, [values], [iteratee=_.identity]) -
differenceWith : 差集合
_.differenceWith(array, [values], [comparator]) -
intersection : 積集合
_.intersection([arrays]) -
intersectionBy : 積集合
_.intersectionBy([arrays], [iteratee=_.identity]) -
intersectionWith : 積集合
_.intersectionWith([arrays], [comparator]) -
union : 和集合
_.union([arrays]) -
unionBy : 和集合
_.unionBy([arrays], [iteratee=_.identity]) -
unionWith : 和集合
_.unionWith([arrays], [comparator]) -
xor : 排他的論理和
_.xor([arrays]) -
xorBy : 排他的論理和
_.xorBy([arrays], [iteratee=_.identity]) -
xorWith : 排他的論理和
_.xorWith([arrays], [comparator])
[Array] 集合 [※2]
-
pullAll : 差集合
_.pullAll(array, values) -
pullAllBy : 差集合
_.pullAllBy(array, values, [iteratee=_.identity]) -
pullAllWith : 差集合
_.pullAllWith(array, values, [comparator])
[Array] 埋める [※2]
-
fill : start から end(含まない) まで value で埋める
_.fill(array, value, [start=0], [end=array.length])
[Array] 検索 [※1]
-
findIndex : predicate が true になる最初の index を返す
_.findIndex(array, [predicate=_.identity], [fromIndex=0]) -
findLastIndex : 上記の逆順
_.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1]) -
indexOf : 指定の値が存在する最初の最初の index を返す
_.indexOf(array, value, [fromIndex=0]) -
lastIndexOf : 上記の逆順
_.lastIndexOf(array, value, [fromIndex=array.length-1])
[Object] 検索 [※1]
-
findKey : find だが返すのはキー
_.findKey(object, [predicate=_.identity]) -
findLastKey : 上記の逆順
_.findLastKey(object, [predicate=_.identity])
[Array] ソートされてる前提での高速検索 [※1]
-
sortedIndex : insert されることになる index を返す
_.sortedIndex(array, value) -
sortedIndexBy : insert されることになる index を返す
_.sortedIndexBy(array, value, [iteratee=_.identity]) -
sortedLastIndex : 上記の逆順
_.sortedLastIndex(array, value) -
sortedLastIndexBy : 上記の逆順
_.sortedLastIndexBy(array, value, [iteratee=_.identity]) -
sortedIndexOf : indexOf
_.sortedIndexOf(array, value) -
sortedLastIndexOf : 上記の逆順
_.sortedLastIndexOf(array, value)
[Array] 平たん化 [※1]
-
flatten : 1段階平たん化
_.flatten(array) -
flattenDeep : 再帰的に完全に平たん化
_.flattenDeep(array) -
flattenDepth : 指定段階で平たん化
_.flattenDepth(array, [depth=1])
[Array/Object] ペア/Zip [※1]
-
fromPairs :
[['a', 1], ['b', 2]]→{ 'a': 1, 'b': 2 }_.fromPairs(pairs) -
zipObject :
['a', 1], ['b', 2]→{ 'a': 1, 'b': 2 }_.zipObject([props=[]], [values=[]]) -
toPairs :
{ 'a': 1, 'b': 2 }→[['a', 1], ['b', 2]]_.toPairs(object) -
toPairsIn : toPairs ただし、親も見る
_.toPairsIn(object) -
zipObjectDeep : プロパティパスを使える。
['a.b[0].c', 'a.b[1].d'], [1, 2]_.zipObjectDeep([props=[]], [values=[]]) -
unzip :
[['a', 1, true], ['b', 2, false]]→[['a', 'b'], [1, 2], [true, false]]_.unzip(array) -
unzipWith : 上記のwith版
_.unzipWith(array, [iteratee=_.identity]) -
zip :
['a', 'b'], [1, 2], [true, false]→[['a', 1, true], ['b', 2, false]]_.zip([arrays]) -
zipWith : 上記のwith版
_.zipWith([arrays], [iteratee=_.identity])
[Array] 取り出す [※1]
-
head : 最初の1個
_.head(array) -
last : 最後の1個
_.last(array) -
take : 最初からn個
_.take(array, [n=1]) -
takeRight : 最後からn個
_.takeRight(array, [n=1]) -
takeWhile : 最初から一致する限り返す
_.takeWhile(array, [predicate=_.identity]) -
takeRightWhile : 最後から一致する限り返す
_.takeRightWhile(array, [predicate=_.identity]) -
initial : 末尾以外を返す
_.initial(array) -
tail : 先頭以外を返す
_.tail(array) -
nth : 指定番目の値。マイナスも使える
_.nth(array, [n=0])
[Array] ユニーク [※1]
-
uniq : 重複なくす
_.uniq(array) -
uniqBy : 上記のby版
_.uniqBy(array, [iteratee=_.identity]) -
uniqWith : 上記のwith版
_.uniqWith(array, [comparator]) -
sortedUniq : ソートされている配列に最適化された
uniq_.sortedUniq(array) -
sortedUniqBy : 上記のby版
_.sortedUniqBy(array, [iteratee])
[Collection] グルーピング [※1]
-
countBy : グループごとカウント
_.countBy(collection, [iteratee=_.identity]) -
groupBy : グルーピング
_.groupBy(collection, [iteratee=_.identity]) -
keyBy : グルーピング。キーを計算で出す。キーが重複したらどれか1個
_.keyBy(collection, [iteratee=_.identity])
[Collection] 判定
-
every : すべてにマッチするか
_.every(collection, [predicate=_.identity]) -
includes : 値として含まれてるか
_.includes(collection, value, [fromIndex=0]) -
some : いずれかにマッチするか
_.some(collection, [predicate=_.identity])
[Collection] 絞り込み [※1]
-
filter : 通常の filter に加え、shorthand 使える
_.filter(collection, [predicate=_.identity]) -
find : 最初の1件
_.find(collection, [predicate=_.identity], [fromIndex=0]) -
findLast : 最後の1件
_.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1]) -
reject : filter の逆
_.reject(collection, [predicate=_.identity])
[Collection] ループ [※1]
-
forEach : オブジェクトでも使える。length があると配列としてループする。return false で break
_.forEach(collection, [iteratee=_.identity]) -
forEachRight : 上記の逆順
_.forEachRight(collection, [iteratee=_.identity])
[Object] オブジェクト専用ループ [※1]
-
forIn : オブジェクト専用 forEach 。length の影響受けない。親クラスのプロパティも対象
_.forIn(object, [iteratee=_.identity]) -
forInRight : 上記の逆順
_.forInRight(object, [iteratee=_.identity]) -
forOwn : オブジェクト専用 forEach 。length の影響受けない。親クラスのプロパティは対象外
_.forOwn(object, [iteratee=_.identity]) -
forOwnRight : 上記の逆順
_.forOwnRight(object, [iteratee=_.identity])
[Collection] 各要素Map [※1]
-
map : map。オブジェクトでも使える
_.map(collection, [iteratee=_.identity]) -
invokeMap : map。ただし引数与えられる
_.invokeMap(collection, path, [args]) -
flatMap : map だが戻り値は flat になる(0~複数個を配列で返せる)
_.flatMap(collection, [iteratee=_.identity]) -
flatMapDeep : map だが戻り値は flat になる(0~複数個を配列で返せる)
_.flatMapDeep(collection, [iteratee=_.identity]) -
flatMapDepth : map だが戻り値は flat になる(0~複数個を配列で返せる)
_.flatMapDepth(collection, [iteratee=_.identity], [depth=1])
[Object] 各要素Map [※1]
-
mapKeys : キー名を差し替えた object を生成するための map
_.mapKeys(object, [iteratee=_.identity]) -
mapValues : 値を差し替えた object を生成するための map
_.mapValues(object, [iteratee=_.identity])
[Collection] ソート [※1]
-
sortBy : ソート
_.sortBy(collection, [iteratees=[_.identity]]) -
orderBy : sortBy。ただし asc/desc を指定できる
_.orderBy(collection, [iteratees=[_.identity]], [orders]) -
shuffle : シャッフル
_.shuffle(collection)
[Collection] 分割 [※1]
-
partition : 処理結果で2つに分割
_.partition(collection, [predicate=_.identity])
[Collection] reduce [※1]
-
reduce : iteratee の第1引数で前の値を受け取り、新しい値を返す。accumulator は整数でもなんでもいい。
_.reduce(collection, [iteratee=_.identity], [accumulator]) -
reduceRight : 上記の逆順
_.reduceRight(collection, [iteratee=_.identity], [accumulator]) -
transform : 基本 reduce。ただし、iteratee の第1引数で accumulator を受け取り、直接変更する。accumulator は配列か object 。ループを中断したいなら false を返す。
_.transform(object, [iteratee=_.identity], [accumulator])
[Collection] サンプリング [※1]
-
sample : 1件ランダム抽出
_.sample(collection) -
sampleSize : n件ランダム抽出
_.sampleSize(collection, [n=1])
[Object] マージ [※2]
-
assign : Object.assign と同様。親クラスのプロパティは見ない。
_.assign(object, [sources]) -
assignWith : 上記のwith版
_.assignWith(object, sources, [customizer]) -
assignIn : Object.assign と同様。親クラスのプロパティを見る。
_.assignIn(object, [sources]) -
assignInWith : 上記のwith版
_.assignInWith(object, sources, [customizer]) -
defaults : Object.assign っぽいが、先勝ち
_.defaults(object, [sources]) -
defaultsDeep : 上記のDeep版
_.defaultsDeep(object, [sources]) -
merge : _.assign と同様。ただしDeep。
_.merge(object, [sources]) -
mergeWith : 上記のwith版
_.mergeWith(object, sources, customizer)
[Object] Path [※1]
-
get : 値取得。なくてもエラーにならない。デフォルト値を返すようにもできる。
_.get(object, path, [defaultValue]) -
result : _.get 。ただし、値が関数なら実行結果を返す
_.result(object, path, [defaultValue]) -
at : Pathでの取得結果を配列で
_.at(object, [paths]) -
has : path が存在するか
_.has(object, path) -
hasIn : path が存在するか。親も見る
_.hasIn(object, path) -
invoke : path の値を関数として実行
_.invoke(object, path, [args]) -
omit : 無視する path を指定。親も見る
_.omit(object, [paths]) -
omitBy : 上記のby版
_.omitBy(object, [predicate=_.identity]) -
pick : 活かすプロパティ(path)を指定
_.pick(object, [paths]) -
pickBy : 上記のby版
_.pickBy(object, [predicate=_.identity])
[Object] Path [※2]
-
set : path に値セット。中間のobjectやarrayがなければ作られる。
_.set(object, path, value) -
setWith : 上記のwith版
_.setWith(object, path, value, [customizer]) -
unset : path のキー削除
_.unset(object, path) -
update : path の値を updater の結果に更新
_.update(object, path, updater) -
updateWith : 上記のwith版
_.updateWith(object, path, updater, [customizer])
[Object] キー/値抽出 [※1]
-
keys : キーを得る
_.keys(object) -
keysIn : キーを得る。親も見る
_.keysIn(object) -
functions : 関数名の配列を返す。親クラスは見ない
_.functions(object) -
functionsIn : 関数名の配列を返す。親クラスも見る
_.functionsIn(object) -
values : 値を得る
_.values(object) -
valuesIn : 値を得る。親も見る
_.valuesIn(object)