配列

コレクション

日付

関数

言語

数学

数値

オブジェクト

シーケンス

文字列

ユーティリティ

プロパティ

メソッド

「配列」メソッド

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

source npm パッケージ

arrayの要素をsizeの長さのグループに分割した配列を作成します。arrayが均等に分割できない場合、最後のチャンクは残りの要素になります。

Since

3.0.0

引数

  1. array(Array): 処理する配列。
  2. [size=1] (number): 各チャンクの長さ

戻り値

(Array): チャンクの新しい配列を返します。

_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
 
_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]

_.compact(array)

source npm パッケージ

偽値がすべて削除された配列を作成します。偽値は、falsenull0""undefined、およびNaNです。

Since

0.1.0

引数

  1. array (Array): コンパクト化する配列。

戻り値

(Array): フィルタリングされた値の新しい配列を返します。

_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]

_.concat(array, [values])

source npm パッケージ

arrayに追加の配列や値を連結した新しい配列を作成します。

Since

4.0.0

引数

  1. array (Array): 連結する配列。
  2. [values] (...*): 連結する値。

戻り値

(Array): 連結された新しい配列を返します。

var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
 
console.log(other);
// => [1, 2, 3, [4]]
 
console.log(array);
// => [1]

_.difference(array, [values])

source npm パッケージ

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

注: _.pullAllとは異なり、このメソッドは新しい配列を返します。

Since

0.1.0

引数

  1. array (Array): 検査する配列。
  2. [values] (...Array): 除外する値。

戻り値

(Array): フィルタリングされた値の新しい配列を返します。

_.difference([2, 1], [2, 3]);
// => [1]

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

source npm パッケージ

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

注: _.pullAllByとは異なり、このメソッドは新しい配列を返します。

Since

4.0.0

引数

  1. array (Array): 検査する配列。
  2. [values] (...Array): 除外する値。
  3. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(Array): フィルタリングされた値の新しい配列を返します。

_.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);
// => [1.2]
 
// The `_.property` iteratee shorthand.
_.differenceBy([{ 'x'2 }, { 'x'1 }], [{ 'x'1 }], 'x');
// => [{ 'x': 2 }]

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

source npm パッケージ

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

注: _.pullAllWithとは異なり、このメソッドは新しい配列を返します。

Since

4.0.0

引数

  1. array (Array): 検査する配列。
  2. [values] (...Array): 除外する値。
  3. [comparator] (Function): 要素ごとに呼び出されるコンパレータ。

戻り値

(Array): フィルタリングされた値の新しい配列を返します。

var objects = [{ 'x'1, 'y'2 }, { 'x'2, 'y'1 }];
 
_.differenceWith(objects, [{ 'x'1, 'y'2 }], _.isEqual);
// => [{ 'x': 2, 'y': 1 }]

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

source npm パッケージ

先頭からn個の要素をドロップしたarrayのスライスを作成します。

Since

0.5.0

引数

  1. array (Array): クエリする配列。
  2. [n=1] (number): ドロップする要素の数。

戻り値

(Array): arrayのスライスを返します。

_.drop([1, 2, 3]);
// => [2, 3]
 
_.drop([1, 2, 3], 2);
// => [3]
 
_.drop([1, 2, 3], 5);
// => []
 
_.drop([1, 2, 3], 0);
// => [1, 2, 3]

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

source npm パッケージ

末尾からn個の要素をドロップしたarrayのスライスを作成します。

Since

3.0.0

引数

  1. array (Array): クエリする配列。
  2. [n=1] (number): ドロップする要素の数。

戻り値

(Array): arrayのスライスを返します。

_.dropRight([1, 2, 3]);
// => [1, 2]
 
_.dropRight([1, 2, 3], 2);
// => [1]
 
_.dropRight([1, 2, 3], 5);
// => []
 
_.dropRight([1, 2, 3], 0);
// => [1, 2, 3]

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

source npm パッケージ

末尾からドロップされた要素を除外したarrayのスライスを作成します。predicateが偽値を返すまで要素がドロップされます。述語は3つの引数で呼び出されます: (value, index, array)

Since

3.0.0

引数

  1. array (Array): クエリする配列。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(Array): arrayのスライスを返します。

var users = [
  { 'user''barney',  'active': true },
  { 'user''fred',    'active': false },
  { 'user''pebbles', 'active': false }
];
 
_.dropRightWhile(users, function(o) { return !o.active; });
// => objects for ['barney']
 
// The `_.matches` iteratee shorthand.
_.dropRightWhile(users, { 'user''pebbles', 'active': false });
// => objects for ['barney', 'fred']
 
// The `_.matchesProperty` iteratee shorthand.
_.dropRightWhile(users, ['active', false]);
// => objects for ['barney']
 
// The `_.property` iteratee shorthand.
_.dropRightWhile(users, 'active');
// => objects for ['barney', 'fred', 'pebbles']

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

ソース npm パッケージ

array の先頭から、要素が削除されていくスライスを作成します。predicate が falsy を返すまで要素が削除されます。predicate は 3 つの引数 (value, index, array) で呼び出されます。

Since

3.0.0

引数

  1. array (Array): クエリする配列。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(Array): arrayのスライスを返します。

var users = [
  { 'user''barney',  'active': false },
  { 'user''fred',    'active': false },
  { 'user''pebbles', 'active': true }
];
 
_.dropWhile(users, function(o) { return !o.active; });
// => objects for ['pebbles']
 
// The `_.matches` iteratee shorthand.
_.dropWhile(users, { 'user''barney', 'active': false });
// => objects for ['fred', 'pebbles']
 
// The `_.matchesProperty` iteratee shorthand.
_.dropWhile(users, ['active', false]);
// => objects for ['pebbles']
 
// The `_.property` iteratee shorthand.
_.dropWhile(users, 'active');
// => objects for ['barney', 'fred', 'pebbles']

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

ソース npm パッケージ

array の要素を、start から end(ただし end は含まない)まで value で埋めます。

注意: このメソッドは array を変更します。

Since

3.2.0

引数

  1. array (Array): 埋める配列。
  2. value (*): array を埋める値。
  3. [start=0] (number): 開始位置。
  4. [end=array.length] (number): 終了位置。

戻り値

(Array): array を返します。

var array = [1, 2, 3];
 
_.fill(array, 'a');
console.log(array);
// => ['a', 'a', 'a']
 
_.fill(Array(3), 2);
// => [2, 2, 2]
 
_.fill([4, 6, 8, 10], '*', 1, 3);
// => [4, '*', '*', 10]

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

ソース npm パッケージ

このメソッドは _.find と似ていますが、最初に見つかった要素自体ではなく、predicate が truthy を返した最初の要素のインデックスを返します。

Since

1.1.0

引数

  1. array (Array): 検査する配列。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。
  3. [fromIndex=0] (number): 検索を開始するインデックス。

戻り値

(number): 見つかった要素のインデックスを返します。見つからなかった場合は -1 を返します。

var users = [
  { 'user''barney',  'active': false },
  { 'user''fred',    'active': false },
  { 'user''pebbles', 'active': true }
];
 
_.findIndex(users, function(o) { return o.user == 'barney'; });
// => 0
 
// The `_.matches` iteratee shorthand.
_.findIndex(users, { 'user''fred', 'active': false });
// => 1
 
// The `_.matchesProperty` iteratee shorthand.
_.findIndex(users, ['active', false]);
// => 0
 
// The `_.property` iteratee shorthand.
_.findIndex(users, 'active');
// => 2

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

ソース npm パッケージ

このメソッドは _.findIndex と似ていますが、collection の要素を右から左に反復処理します。

Since

2.0.0

引数

  1. array (Array): 検査する配列。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。
  3. [fromIndex=array.length-1] (number): 検索を開始するインデックス。

戻り値

(number): 見つかった要素のインデックスを返します。見つからなかった場合は -1 を返します。

var users = [
  { 'user''barney',  'active': true },
  { 'user''fred',    'active': false },
  { 'user''pebbles', 'active': false }
];
 
_.findLastIndex(users, function(o) { return o.user == 'pebbles'; });
// => 2
 
// The `_.matches` iteratee shorthand.
_.findLastIndex(users, { 'user''barney', 'active': true });
// => 0
 
// The `_.matchesProperty` iteratee shorthand.
_.findLastIndex(users, ['active', false]);
// => 2
 
// The `_.property` iteratee shorthand.
_.findLastIndex(users, 'active');
// => 0

_.flatten(array)

ソース npm パッケージ

array を一段階深くフラット化します。

Since

0.1.0

引数

  1. array (Array): フラット化する配列。

戻り値

(Array): 新しいフラット化された配列を返します。

_.flatten([1, [2, [3, [4]], 5]]);
// => [1, 2, [3, [4]], 5]

_.flattenDeep(array)

ソース npm パッケージ

array を再帰的にフラット化します。

Since

3.0.0

引数

  1. array (Array): フラット化する配列。

戻り値

(Array): 新しいフラット化された配列を返します。

_.flattenDeep([1, [2, [3, [4]], 5]]);
// => [1, 2, 3, 4, 5]

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

ソース npm パッケージ

arraydepth 回まで再帰的にフラット化します。

Since

4.4.0

引数

  1. array (Array): フラット化する配列。
  2. [depth=1] (number): 最大再帰深度。

戻り値

(Array): 新しいフラット化された配列を返します。

var array = [1, [2, [3, [4]], 5]];
 
_.flattenDepth(array, 1);
// => [1, 2, [3, [4]], 5]
 
_.flattenDepth(array, 2);
// => [1, 2, 3, [4], 5]

_.fromPairs(pairs)

ソース npm パッケージ

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

Since

4.0.0

引数

  1. pairs (Array): キーと値のペア。

戻り値

(Object): 新しいオブジェクトを返します。

_.fromPairs([['a', 1], ['b', 2]]);
// => { 'a': 1, 'b': 2 }

ソース npm パッケージ

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

Since

0.1.0

エイリアス

_.first

引数

  1. array (Array): クエリする配列。

戻り値

(*): array の最初の要素を返します。

_.head([1, 2, 3]);
// => 1
 
_.head([]);
// => undefined

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

ソース npm パッケージ

array 内で最初に見つかった value のインデックスを、SameValueZero を用いた等価性比較によって取得します。fromIndex が負数の場合は、array の末尾からのオフセットとして使用されます。

Since

0.1.0

引数

  1. array (Array): 検査する配列。
  2. value (*): 検索する値。
  3. [fromIndex=0] (number): 検索を開始するインデックス。

戻り値

(number): 一致する値のインデックスを返します。一致するものがない場合は -1 を返します。

_.indexOf([1, 2, 1, 2], 2);
// => 1
 
// Search from the `fromIndex`.
_.indexOf([1, 2, 1, 2], 2, 2);
// => 3

_.initial(array)

ソース npm パッケージ

array の最後の要素以外のすべてを取得します。

Since

0.1.0

引数

  1. array (Array): クエリする配列。

戻り値

(Array): arrayのスライスを返します。

_.initial([1, 2, 3]);
// => [1, 2]

_.intersection([arrays])

ソース npm パッケージ

SameValueZero を用いた等価性比較によって、与えられたすべての配列に含まれるユニークな値の配列を作成します。結果の値の順序と参照は、最初の配列によって決定されます。

Since

0.1.0

引数

  1. [arrays] (...Array): 検査する配列。

戻り値

(Array): 交差する値の新しい配列を返します。

_.intersection([2, 1], [2, 3]);
// => [2]

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

ソース npm パッケージ

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

Since

4.0.0

引数

  1. [arrays] (...Array): 検査する配列。
  2. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(Array): 交差する値の新しい配列を返します。

_.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
// => [2.1]
 
// The `_.property` iteratee shorthand.
_.intersectionBy([{ 'x'1 }], [{ 'x'2 }, { 'x'1 }], 'x');
// => [{ 'x': 1 }]

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

ソース npm パッケージ

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

Since

4.0.0

引数

  1. [arrays] (...Array): 検査する配列。
  2. [comparator] (Function): 要素ごとに呼び出されるコンパレータ。

戻り値

(Array): 交差する値の新しい配列を返します。

var objects = [{ 'x'1, 'y'2 }, { 'x'2, 'y'1 }];
var others = [{ 'x'1, 'y'1 }, { 'x'1, 'y'2 }];
 
_.intersectionWith(objects, others, _.isEqual);
// => [{ 'x': 1, 'y': 2 }]

_.join(array, [separator=','])

ソース npm パッケージ

array のすべての要素を、separator で区切られた文字列に変換します。

Since

4.0.0

引数

  1. array (Array): 変換する配列。
  2. [separator=','] (string): 要素の区切り文字。

戻り値

(string): 結合された文字列を返します。

_.join(['a', 'b', 'c'], '~');
// => 'a~b~c'

_.last(array)

ソース npm パッケージ

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

Since

0.1.0

引数

  1. array (Array): クエリする配列。

戻り値

(*): array の最後の要素を返します。

_.last([1, 2, 3]);
// => 3

_.lastIndexOf(array, value, [fromIndex=array.length-1])

ソース npm パッケージ

このメソッドは _.indexOf と似ていますが、array の要素を右から左に反復処理します。

Since

0.1.0

引数

  1. array (Array): 検査する配列。
  2. value (*): 検索する値。
  3. [fromIndex=array.length-1] (number): 検索を開始するインデックス。

戻り値

(number): 一致する値のインデックスを返します。一致するものがない場合は -1 を返します。

_.lastIndexOf([1, 2, 1, 2], 2);
// => 3
 
// Search from the `fromIndex`.
_.lastIndexOf([1, 2, 1, 2], 2, 2);
// => 1

_.nth(array, [n=0])

ソース npm パッケージ

array のインデックス n の要素を取得します。n が負数の場合、末尾から数えて n 番目の要素が返されます。

Since

4.11.0

引数

  1. array (Array): クエリする配列。
  2. [n=0] (number): 返す要素のインデックス。

戻り値

(*): array の n 番目の要素を返します。

var array = ['a', 'b', 'c', 'd'];
 
_.nth(array, 1);
// => 'b'
 
_.nth(array, -2);
// => 'c';

_.pull(array, [values])

ソース npm パッケージ

SameValueZero を用いた等価性比較によって、指定されたすべての値を array から削除します。

注意: _.without とは異なり、このメソッドは array を変更します。述語によって配列から要素を削除するには、_.remove を使用します。

Since

2.0.0

引数

  1. array (Array): 変更する配列。
  2. [values] (...*): 削除する値。

戻り値

(Array): array を返します。

var array = ['a', 'b', 'c', 'a', 'b', 'c'];
 
_.pull(array, 'a', 'c');
console.log(array);
// => ['b', 'b']

_.pullAll(array, values)

ソース npm パッケージ

このメソッドは _.pull と似ていますが、削除する値の配列を受け入れます。

注意: _.difference とは異なり、このメソッドは array を変更します。

Since

4.0.0

引数

  1. array (Array): 変更する配列。
  2. values (Array): 削除する値。

戻り値

(Array): array を返します。

var array = ['a', 'b', 'c', 'a', 'b', 'c'];
 
_.pullAll(array, ['a', 'c']);
console.log(array);
// => ['b', 'b']

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

ソース npm パッケージ

このメソッドは _.pullAll と似ていますが、arrayvalues の各要素に対して呼び出され、比較基準を生成する iteratee を受け入れます。iteratee は 1 つの引数 (value) で呼び出されます。

注意: _.differenceBy とは異なり、このメソッドは array を変更します。

Since

4.0.0

引数

  1. array (Array): 変更する配列。
  2. values (Array): 削除する値。
  3. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(Array): array を返します。

var array = [{ 'x'1 }, { 'x'2 }, { 'x'3 }, { 'x'1 }];
 
_.pullAllBy(array, [{ 'x'1 }, { 'x'3 }], 'x');
console.log(array);
// => [{ 'x': 2 }]

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

ソース npm パッケージ

このメソッドは _.pullAll と似ていますが、array の要素と values を比較するために呼び出される comparator を受け入れます。コンパレータは 2 つの引数 (arrVal, othVal) で呼び出されます。

注意: _.differenceWith とは異なり、このメソッドは array を変更します。

Since

4.6.0

引数

  1. array (Array): 変更する配列。
  2. values (Array): 削除する値。
  3. [comparator] (Function): 要素ごとに呼び出されるコンパレータ。

戻り値

(Array): array を返します。

var array = [{ 'x'1, 'y'2 }, { 'x'3, 'y'4 }, { 'x'5, 'y'6 }];
 
_.pullAllWith(array, [{ 'x'3, 'y'4 }], _.isEqual);
console.log(array);
// => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]

_.pullAt(array, [indexes])

ソース npm パッケージ

indexes に対応する array から要素を削除し、削除された要素の配列を返します。

注意: _.at とは異なり、このメソッドは array を変更します。

Since

3.0.0

引数

  1. array (Array): 変更する配列。
  2. [indexes] (...(number|number[])): 削除する要素のインデックス。

戻り値

(Array): 削除された要素の新しい配列を返します。

var array = ['a', 'b', 'c', 'd'];
var pulled = _.pullAt(array, [1, 3]);
 
console.log(array);
// => ['a', 'c']
 
console.log(pulled);
// => ['b', 'd']

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

ソース npm パッケージ

predicate が truthy を返す array からすべての要素を削除し、削除された要素の配列を返します。predicate は 3 つの引数 (value, index, array) で呼び出されます。

注意: _.filter とは異なり、このメソッドは array を変更します。値によって配列から要素を削除するには、_.pull を使用します。

Since

2.0.0

引数

  1. array (Array): 変更する配列。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(Array): 削除された要素の新しい配列を返します。

var array = [1, 2, 3, 4];
var evens = _.remove(array, function(n) {
  return n % 2 == 0;
});
 
console.log(array);
// => [1, 3]
 
console.log(evens);
// => [2, 4]

_.reverse(array)

ソース npm パッケージ

array の要素の順番を反転させます。最初の要素が最後になり、2番目の要素が最後から2番目になる、といった具合です。

注意: このメソッドは array を変更し、Array#reverse に基づいています。

Since

4.0.0

引数

  1. array (Array): 変更する配列。

戻り値

(Array): array を返します。

var array = [1, 2, 3];
 
_.reverse(array);
// => [3, 2, 1]
 
console.log(array);
// => [3, 2, 1]

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

ソース npm パッケージ

arraystart から end (end は含まない)までのスライスを作成します。

注意: このメソッドは、密な配列が返されることを保証するために、Array#slice の代わりに使用されます。

Since

3.0.0

引数

  1. array (Array): スライスする配列。
  2. [start=0] (number): 開始位置。
  3. [end=array.length] (number): 終了位置。

戻り値

(Array): arrayのスライスを返します。

_.sortedIndex(array, value)

ソース npm パッケージ

ソートされた array 内で、ソート順を維持するために value を挿入すべき最も低いインデックスを、二分探索を使用して決定します。

Since

0.1.0

引数

  1. array (Array): 検査するソート済みの配列。
  2. value (*): 評価する値。

戻り値

(number): valuearray に挿入すべきインデックスを返します。

_.sortedIndex([30, 50], 40);
// => 1

_.sortedIndexBy(array, value, [iteratee=_.identity])

ソース npm パッケージ

このメソッドは _.sortedIndex に似ていますが、iteratee を受け入れる点が異なります。iteratee は、ソートランキングを計算するために、value および array の各要素に対して呼び出されます。イテレーターは1つの引数 (value) で呼び出されます。

Since

4.0.0

引数

  1. array (Array): 検査するソート済みの配列。
  2. value (*): 評価する値。
  3. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(number): valuearray に挿入すべきインデックスを返します。

var objects = [{ 'x'4 }, { 'x'5 }];
 
_.sortedIndexBy(objects, { 'x'4 }, function(o) { return o.x; });
// => 0
 
// The `_.property` iteratee shorthand.
_.sortedIndexBy(objects, { 'x'4 }, 'x');
// => 0

_.sortedIndexOf(array, value)

ソース npm パッケージ

このメソッドは _.indexOf に似ていますが、ソートされた array に対して二分探索を実行する点が異なります。

Since

4.0.0

引数

  1. array (Array): 検査する配列。
  2. value (*): 検索する値。

戻り値

(number): 一致する値のインデックスを返します。一致するものがない場合は -1 を返します。

_.sortedIndexOf([4, 5, 5, 5, 6], 5);
// => 1

_.sortedLastIndex(array, value)

ソース npm パッケージ

このメソッドは _.sortedIndex に似ていますが、ソート順を維持するために valuearray に挿入すべき最も高いインデックスを返す点が異なります。

Since

3.0.0

引数

  1. array (Array): 検査するソート済みの配列。
  2. value (*): 評価する値。

戻り値

(number): valuearray に挿入すべきインデックスを返します。

_.sortedLastIndex([4, 5, 5, 5, 6], 5);
// => 4

_.sortedLastIndexBy(array, value, [iteratee=_.identity])

ソース npm パッケージ

このメソッドは _.sortedLastIndex に似ていますが、iteratee を受け入れる点が異なります。iteratee は、ソートランキングを計算するために、value および array の各要素に対して呼び出されます。イテレーターは1つの引数 (value) で呼び出されます。

Since

4.0.0

引数

  1. array (Array): 検査するソート済みの配列。
  2. value (*): 評価する値。
  3. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(number): valuearray に挿入すべきインデックスを返します。

var objects = [{ 'x'4 }, { 'x'5 }];
 
_.sortedLastIndexBy(objects, { 'x'4 }, function(o) { return o.x; });
// => 1
 
// The `_.property` iteratee shorthand.
_.sortedLastIndexBy(objects, { 'x'4 }, 'x');
// => 1

_.sortedLastIndexOf(array, value)

ソース npm パッケージ

このメソッドは _.lastIndexOf に似ていますが、ソートされた array に対して二分探索を実行する点が異なります。

Since

4.0.0

引数

  1. array (Array): 検査する配列。
  2. value (*): 検索する値。

戻り値

(number): 一致する値のインデックスを返します。一致するものがない場合は -1 を返します。

_.sortedLastIndexOf([4, 5, 5, 5, 6], 5);
// => 3

_.sortedUniq(array)

ソース npm パッケージ

このメソッドは _.uniq に似ていますが、ソートされた配列向けに設計および最適化されている点が異なります。

Since

4.0.0

引数

  1. array (Array): 検査する配列。

戻り値

(Array): 重複のない新しい配列を返します。

_.sortedUniq([1, 1, 2]);
// => [1, 2]

_.sortedUniqBy(array, [iteratee])

ソース npm パッケージ

このメソッドは _.uniqBy に似ていますが、ソートされた配列向けに設計および最適化されている点が異なります。

Since

4.0.0

引数

  1. array (Array): 検査する配列。
  2. [iteratee] (Function): 要素ごとに呼び出されるイテレーター。

戻り値

(Array): 重複のない新しい配列を返します。

_.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
// => [1.1, 2.3]

_.tail(array)

ソース npm パッケージ

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

Since

4.0.0

引数

  1. array (Array): クエリする配列。

戻り値

(Array): arrayのスライスを返します。

_.tail([1, 2, 3]);
// => [2, 3]

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

ソース npm パッケージ

array の先頭から n 個の要素を取得したスライスを作成します。

Since

0.1.0

引数

  1. array (Array): クエリする配列。
  2. [n=1] (number): 取得する要素の数。

戻り値

(Array): arrayのスライスを返します。

_.take([1, 2, 3]);
// => [1]
 
_.take([1, 2, 3], 2);
// => [1, 2]
 
_.take([1, 2, 3], 5);
// => [1, 2, 3]
 
_.take([1, 2, 3], 0);
// => []

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

ソース npm パッケージ

array の末尾から n 個の要素を取得したスライスを作成します。

Since

3.0.0

引数

  1. array (Array): クエリする配列。
  2. [n=1] (number): 取得する要素の数。

戻り値

(Array): arrayのスライスを返します。

_.takeRight([1, 2, 3]);
// => [3]
 
_.takeRight([1, 2, 3], 2);
// => [2, 3]
 
_.takeRight([1, 2, 3], 5);
// => [1, 2, 3]
 
_.takeRight([1, 2, 3], 0);
// => []

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

ソース npm パッケージ

array の末尾から要素を取得したスライスを作成します。predicate が偽を返すまで要素を取得します。述語は3つの引数 (value, index, array) で呼び出されます。

Since

3.0.0

引数

  1. array (Array): クエリする配列。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(Array): arrayのスライスを返します。

var users = [
  { 'user''barney',  'active': true },
  { 'user''fred',    'active': false },
  { 'user''pebbles', 'active': false }
];
 
_.takeRightWhile(users, function(o) { return !o.active; });
// => objects for ['fred', 'pebbles']
 
// The `_.matches` iteratee shorthand.
_.takeRightWhile(users, { 'user''pebbles', 'active': false });
// => objects for ['pebbles']
 
// The `_.matchesProperty` iteratee shorthand.
_.takeRightWhile(users, ['active', false]);
// => objects for ['fred', 'pebbles']
 
// The `_.property` iteratee shorthand.
_.takeRightWhile(users, 'active');
// => []

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

ソース npm パッケージ

array の先頭から要素を取得したスライスを作成します。predicate が偽を返すまで要素を取得します。述語は3つの引数 (value, index, array) で呼び出されます。

Since

3.0.0

引数

  1. array (Array): クエリする配列。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(Array): arrayのスライスを返します。

var users = [
  { 'user''barney',  'active': false },
  { 'user''fred',    'active': false },
  { 'user''pebbles', 'active': true }
];
 
_.takeWhile(users, function(o) { return !o.active; });
// => objects for ['barney', 'fred']
 
// The `_.matches` iteratee shorthand.
_.takeWhile(users, { 'user''barney', 'active': false });
// => objects for ['barney']
 
// The `_.matchesProperty` iteratee shorthand.
_.takeWhile(users, ['active', false]);
// => objects for ['barney', 'fred']
 
// The `_.property` iteratee shorthand.
_.takeWhile(users, 'active');
// => []

_.union([arrays])

ソース npm パッケージ

与えられたすべての配列から、SameValueZero を使用して等価性を比較し、順序通りに重複のない値の配列を作成します。

Since

0.1.0

引数

  1. [arrays] (...Array): 検査する配列。

戻り値

(Array): 結合された値の新しい配列を返します。

_.union([2], [1, 2]);
// => [2, 1]

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

ソース npm パッケージ

このメソッドは _.union に似ていますが、iteratee を受け入れる点が異なります。iteratee は、一意性を計算するための基準を生成するために、各 arrays の各要素に対して呼び出されます。結果の値は、値が発生する最初の配列から選択されます。イテレーターは1つの引数で呼び出されます。
(value).

Since

4.0.0

引数

  1. [arrays] (...Array): 検査する配列。
  2. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(Array): 結合された値の新しい配列を返します。

_.unionBy([2.1], [1.2, 2.3], Math.floor);
// => [2.1, 1.2]
 
// The `_.property` iteratee shorthand.
_.unionBy([{ 'x'1 }], [{ 'x'2 }, { 'x'1 }], 'x');
// => [{ 'x': 1 }, { 'x': 2 }]

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

ソース npm パッケージ

このメソッドは _.union に似ていますが、arrays の要素を比較するために呼び出される comparator を受け入れる点が異なります。結果の値は、値が発生する最初の配列から選択されます。コンパレーターは、2つの引数 (arrVal, othVal) で呼び出されます。

Since

4.0.0

引数

  1. [arrays] (...Array): 検査する配列。
  2. [comparator] (Function): 要素ごとに呼び出されるコンパレータ。

戻り値

(Array): 結合された値の新しい配列を返します。

var objects = [{ 'x'1, 'y'2 }, { 'x'2, 'y'1 }];
var others = [{ 'x'1, 'y'1 }, { 'x'1, 'y'2 }];
 
_.unionWith(objects, others, _.isEqual);
// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]

_.uniq(array)

ソース npm パッケージ

配列の重複のないバージョンを作成します。SameValueZero を使用して等価性を比較し、各要素の最初の出現のみが保持されます。結果の値の順序は、配列内での出現順序によって決定されます。

Since

0.1.0

引数

  1. array (Array): 検査する配列。

戻り値

(Array): 重複のない新しい配列を返します。

_.uniq([2, 1, 2]);
// => [2, 1]

_.uniqBy(array, [iteratee=_.identity])

ソース npm パッケージ

このメソッドは _.uniq に似ていますが、一意性を計算する基準を生成するために array 内の各要素に対して呼び出される iteratee を受け入れる点が異なります。結果の値の順序は、配列内での出現順序によって決定されます。イテレーターは1つの引数で呼び出されます。
(value).

Since

4.0.0

引数

  1. array (Array): 検査する配列。
  2. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(Array): 重複のない新しい配列を返します。

_.uniqBy([2.1, 1.2, 2.3], Math.floor);
// => [2.1, 1.2]
 
// The `_.property` iteratee shorthand.
_.uniqBy([{ 'x'1 }, { 'x'2 }, { 'x'1 }], 'x');
// => [{ 'x': 1 }, { 'x': 2 }]

_.uniqWith(array, [comparator])

ソース npm パッケージ

このメソッドは _.uniq に似ていますが、array の要素を比較するために呼び出される comparator を受け入れる点が異なります。結果の値の順序は、配列内での出現順序によって決定されます。コンパレーターは、2つの引数 (arrVal, othVal) で呼び出されます。

Since

4.0.0

引数

  1. array (Array): 検査する配列。
  2. [comparator] (Function): 要素ごとに呼び出されるコンパレータ。

戻り値

(Array): 重複のない新しい配列を返します。

var objects = [{ 'x'1, 'y'2 }, { 'x'2, 'y'1 }, { 'x'1, 'y'2 }];
 
_.uniqWith(objects, _.isEqual);
// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]

_.unzip(array)

ソース npm パッケージ

このメソッドは _.zip に似ていますが、グループ化された要素の配列を受け取り、要素を元の zip 前の構成に再グループ化する配列を作成する点が異なります。

Since

1.2.0

引数

  1. array (Array): 処理するグループ化された要素の配列。

戻り値

(Array): 再グループ化された要素の新しい配列を返します。

var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);
// => [['a', 1, true], ['b', 2, false]]
 
_.unzip(zipped);
// => [['a', 'b'], [1, 2], [true, false]]

_.unzipWith(array, [iteratee=_.identity])

ソース npm パッケージ

このメソッドは _.unzip に似ていますが、再グループ化された値をどのように結合するかを指定する iteratee を受け入れる点が異なります。イテレーターは、各グループの要素 (...group) で呼び出されます。

Since

3.8.0

引数

  1. array (Array): 処理するグループ化された要素の配列。
  2. [iteratee=_.identity] (Function): 再グループ化された値を結合する関数。

戻り値

(Array): 再グループ化された要素の新しい配列を返します。

var zipped = _.zip([1, 2], [10, 20], [100, 200]);
// => [[1, 10, 100], [2, 20, 200]]
 
_.unzipWith(zipped, _.add);
// => [3, 30, 300]

_.without(array, [values])

ソース npm パッケージ

SameValueZero を使用して等価性を比較し、指定されたすべての値を除外する配列を作成します。

注意: _.pull とは異なり、このメソッドは新しい配列を返します。

Since

0.1.0

引数

  1. array (Array): 検査する配列。
  2. [values] (...*): 除外する値。

戻り値

(Array): フィルタリングされた値の新しい配列を返します。

_.without([2, 1, 2, 3], 1, 2);
// => [3]

_.xor([arrays])

ソース npm パッケージ

指定された配列の対称差である一意の値の配列を作成します。結果の値の順序は、配列内での出現順序によって決定されます。

Since

2.4.0

引数

  1. [arrays] (...Array): 検査する配列。

戻り値

(Array): フィルタリングされた値の新しい配列を返します。

_.xor([2, 1], [2, 3]);
// => [1, 3]

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

ソース npm パッケージ

このメソッドは _.xor に似ていますが、比較される基準を生成するために、各 arrays の各要素に対して呼び出される iteratee を受け入れる点が異なります。結果の値の順序は、配列内での出現順序によって決定されます。イテレーターは1つの引数 (value) で呼び出されます。

Since

4.0.0

引数

  1. [arrays] (...Array): 検査する配列。
  2. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(Array): フィルタリングされた値の新しい配列を返します。

_.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);
// => [1.2, 3.4]
 
// The `_.property` iteratee shorthand.
_.xorBy([{ 'x'1 }], [{ 'x'2 }, { 'x'1 }], 'x');
// => [{ 'x': 2 }]

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

ソース npm パッケージ

このメソッドは、_.xor に似ていますが、comparator を受け取り、arrays の要素を比較するために呼び出されます。結果の値の順序は、配列内での出現順によって決定されます。コンパレータは、2つの引数 (arrVal, othVal) で呼び出されます。

Since

4.0.0

引数

  1. [arrays] (...Array): 検査する配列。
  2. [comparator] (Function): 要素ごとに呼び出されるコンパレータ。

戻り値

(Array): フィルタリングされた値の新しい配列を返します。

var objects = [{ 'x'1, 'y'2 }, { 'x'2, 'y'1 }];
var others = [{ 'x'1, 'y'1 }, { 'x'1, 'y'2 }];
 
_.xorWith(objects, others, _.isEqual);
// => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]

_.zip([arrays])

ソース npm パッケージ

グループ化された要素の配列を作成します。最初の要素は、指定された配列の最初の要素を含み、2番目の要素は、指定された配列の2番目の要素を含み、以降同様です。

Since

0.1.0

引数

  1. [arrays] (...Array): 処理する配列。

戻り値

(Array): グループ化された要素の新しい配列を返します。

_.zip(['a', 'b'], [1, 2], [true, false]);
// => [['a', 1, true], ['b', 2, false]]

_.zipObject([props=[]], [values=[]])

ソース npm パッケージ

このメソッドは、_.fromPairs に似ていますが、プロパティ識別子の配列と、対応する値の配列の2つを受け取ります。

Since

0.4.0

引数

  1. [props=[]] (Array): プロパティ識別子。
  2. [values=[]] (Array): プロパティ値。

戻り値

(Object): 新しいオブジェクトを返します。

_.zipObject(['a', 'b'], [1, 2]);
// => { 'a': 1, 'b': 2 }

_.zipObjectDeep([props=[]], [values=[]])

ソース npm パッケージ

このメソッドは、_.zipObject に似ていますが、プロパティパスをサポートしています。

Since

4.1.0

引数

  1. [props=[]] (Array): プロパティ識別子。
  2. [values=[]] (Array): プロパティ値。

戻り値

(Object): 新しいオブジェクトを返します。

_.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);
// => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }

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

ソース npm パッケージ

このメソッドは、_.zip に似ていますが、グループ化された値をどのように結合するかを指定するための iteratee を受け取ります。イテレータは、各グループの要素 (...group) で呼び出されます。

Since

3.8.0

引数

  1. [arrays] (...Array): 処理する配列。
  2. [iteratee=_.identity] (Function): グループ化された値を結合する関数。

戻り値

(Array): グループ化された要素の新しい配列を返します。

_.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
  return a + b + c;
});
// => [111, 222]

「コレクション」メソッド

_.countBy(collection, [iteratee=_.identity])

ソース npm パッケージ

collection の各要素を iteratee を介して実行した結果から生成されたキーで構成されるオブジェクトを作成します。各キーの対応する値は、キーが iteratee によって返された回数です。イテレータは、1つの引数 (value) で呼び出されます。

Since

0.5.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): キーを変換するイテレータ。

戻り値

(Object): 構成された集計オブジェクトを返します。

_.countBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': 1, '6': 2 }
 
// The `_.property` iteratee shorthand.
_.countBy(['one', 'two', 'three'], 'length');
// => { '3': 2, '5': 1 }

_.every(collection, [predicate=_.identity])

ソース npm パッケージ

predicatecollection の **すべての** 要素に対して truthy を返すかどうかを確認します。predicate が falsey を返すと、反復処理は停止します。述語は、3つの引数 (value, index|key, collection) で呼び出されます。

注: このメソッドは、空のコレクションに対して true を返します。これは、空のコレクションの要素については すべてが真 であるためです。

Since

0.1.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(boolean): すべての要素が述語チェックに合格した場合は true を返し、それ以外の場合は false を返します。

_.every([true, 1, null, 'yes'], Boolean);
// => false
 
var users = [
  { 'user''barney', 'age'36, 'active': false },
  { 'user''fred',   'age'40, 'active': false }
];
 
// The `_.matches` iteratee shorthand.
_.every(users, { 'user''barney', 'active': false });
// => false
 
// The `_.matchesProperty` iteratee shorthand.
_.every(users, ['active', false]);
// => true
 
// The `_.property` iteratee shorthand.
_.every(users, 'active');
// => false

_.filter(collection, [predicate=_.identity])

ソース npm パッケージ

collection の要素を反復処理し、predicate が truthy を返すすべての要素の配列を返します。述語は、3つの引数 (value, index|key, collection) で呼び出されます。

注: _.remove とは異なり、このメソッドは新しい配列を返します。

Since

0.1.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(Array): 新しいフィルタリングされた配列を返します。

var users = [
  { 'user''barney', 'age'36, 'active': true },
  { 'user''fred',   'age'40, 'active': false }
];
 
_.filter(users, function(o) { return !o.active; });
// => objects for ['fred']
 
// The `_.matches` iteratee shorthand.
_.filter(users, { 'age'36, 'active': true });
// => objects for ['barney']
 
// The `_.matchesProperty` iteratee shorthand.
_.filter(users, ['active', false]);
// => objects for ['fred']
 
// The `_.property` iteratee shorthand.
_.filter(users, 'active');
// => objects for ['barney']

_.find(collection, [predicate=_.identity], [fromIndex=0])

ソース npm パッケージ

collection の要素を反復処理し、predicate が truthy を返す最初の要素を返します。述語は、3つの引数 (value, index|key, collection) で呼び出されます。

Since

0.1.0

引数

  1. collection (Array|Object): 検査するコレクション。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。
  3. [fromIndex=0] (number): 検索を開始するインデックス。

戻り値

(*): 一致する要素を返します。それ以外の場合は undefined を返します。

var users = [
  { 'user''barney',  'age'36, 'active': true },
  { 'user''fred',    'age'40, 'active': false },
  { 'user''pebbles', 'age'1,  'active': true }
];
 
_.find(users, function(o) { return o.age < 40; });
// => object for 'barney'
 
// The `_.matches` iteratee shorthand.
_.find(users, { 'age'1, 'active': true });
// => object for 'pebbles'
 
// The `_.matchesProperty` iteratee shorthand.
_.find(users, ['active', false]);
// => object for 'fred'
 
// The `_.property` iteratee shorthand.
_.find(users, 'active');
// => object for 'barney'

_.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1])

ソース npm パッケージ

このメソッドは、_.find に似ていますが、collection の要素を右から左に反復処理します。

Since

2.0.0

引数

  1. collection (Array|Object): 検査するコレクション。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。
  3. [fromIndex=collection.length-1] (number): 検索を開始するインデックス。

戻り値

(*): 一致する要素を返します。それ以外の場合は undefined を返します。

_.findLast([1, 2, 3, 4], function(n) {
  return n % 2 == 1;
});
// => 3

_.flatMap(collection, [iteratee=_.identity])

ソース npm パッケージ

collection の各要素を iteratee を介して実行し、マップされた結果をフラット化することにより、値のフラット化された配列を作成します。イテレータは、3つの引数 (value, index|key, collection) で呼び出されます。

Since

4.0.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(Array): 新しいフラット化された配列を返します。

function duplicate(n) {
  return [n, n];
}
 
_.flatMap([1, 2], duplicate);
// => [1, 1, 2, 2]

_.flatMapDeep(collection, [iteratee=_.identity])

ソース npm パッケージ

このメソッドは、_.flatMap に似ていますが、マップされた結果を再帰的にフラット化します。

Since

4.7.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(Array): 新しいフラット化された配列を返します。

function duplicate(n) {
  return [[[n, n]]];
}
 
_.flatMapDeep([1, 2], duplicate);
// => [1, 1, 2, 2]

_.flatMapDepth(collection, [iteratee=_.identity], [depth=1])

ソース npm パッケージ

このメソッドは、_.flatMap に似ていますが、マップされた結果を最大 depth 回再帰的にフラット化します。

Since

4.7.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。
  3. [depth=1] (number): 最大再帰深度。

戻り値

(Array): 新しいフラット化された配列を返します。

function duplicate(n) {
  return [[[n, n]]];
}
 
_.flatMapDepth([1, 2], duplicate, 2);
// => [[1, 1], [2, 2]]

_.forEach(collection, [iteratee=_.identity])

ソース npm パッケージ

collection の要素を反復処理し、各要素に対して iteratee を呼び出します。イテレータは、3つの引数 (value, index|key, collection) で呼び出されます。イテレータ関数は、明示的に false を返すことで、反復処理を早期に終了できます。

注: 他の「コレクション」メソッドと同様に、「length」プロパティを持つオブジェクトは配列のように反復処理されます。この動作を回避するには、オブジェクトの反復処理に _.forIn または _.forOwn を使用します。

Since

0.1.0

エイリアス

_.each

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(*): collection を返します。

_.forEach([1, 2], function(value) {
  console.log(value);
});
// => Logs `1` then `2`.
 
_.forEach({ 'a'1, 'b'2 }, function(value, key) {
  console.log(key);
});
// => Logs 'a' then 'b' (iteration order is not guaranteed).

_.forEachRight(collection, [iteratee=_.identity])

ソース npm パッケージ

このメソッドは、_.forEach に似ていますが、collection の要素を右から左に反復処理します。

Since

2.0.0

エイリアス

_.eachRight

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(*): collection を返します。

_.forEachRight([1, 2], function(value) {
  console.log(value);
});
// => Logs `2` then `1`.

_.groupBy(collection, [iteratee=_.identity])

ソース npm パッケージ

collection の各要素を iteratee を介して実行した結果から生成されたキーで構成されるオブジェクトを作成します。グループ化された値の順序は、collection 内での出現順序によって決定されます。各キーの対応する値は、キーを生成した要素の配列です。イテレータは、1つの引数 (value) で呼び出されます。

Since

0.1.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): キーを変換するイテレータ。

戻り値

(Object): 構成された集計オブジェクトを返します。

_.groupBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': [4.2], '6': [6.1, 6.3] }
 
// The `_.property` iteratee shorthand.
_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }

_.includes(collection, value, [fromIndex=0])

ソース npm パッケージ

valuecollection 内にあるかどうかを確認します。collection が文字列の場合、value の部分文字列であるかどうかがチェックされます。それ以外の場合は、SameValueZero が等価性比較に使用されます。fromIndex が負の場合、collection の末尾からのオフセットとして使用されます。

Since

0.1.0

引数

  1. collection (Array|Object|string): 検査するコレクション。
  2. value (*): 検索する値。
  3. [fromIndex=0] (number): 検索を開始するインデックス。

戻り値

(boolean): value が見つかった場合は true を返し、それ以外の場合は false を返します。

_.includes([1, 2, 3], 1);
// => true
 
_.includes([1, 2, 3], 1, 2);
// => false
 
_.includes({ 'a'1, 'b'2 }, 1);
// => true
 
_.includes('abcd', 'bc');
// => true

_.invokeMap(collection, path, [args])

ソース npm パッケージ

collection 内の各要素の path にあるメソッドを呼び出し、呼び出された各メソッドの結果の配列を返します。追加の引数は、呼び出された各メソッドに提供されます。path が関数の場合、collection 内の各要素に対して、this がバインドされた状態で呼び出されます。

Since

4.0.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. path (Array|Function|string): 呼び出すメソッドのパス、または反復処理ごとに呼び出される関数。
  3. [args] (...*): 各メソッドを呼び出すための引数。

戻り値

(Array): 結果の配列を返します。

_.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');
// => [[1, 5, 7], [1, 2, 3]]
 
_.invokeMap([123, 456], String.prototype.split, '');
// => [['1', '2', '3'], ['4', '5', '6']]

_.keyBy(collection, [iteratee=_.identity])

ソース npm パッケージ

collection の各要素を iteratee を介して実行した結果から生成されたキーで構成されるオブジェクトを作成します。各キーの対応する値は、キーを生成した最後の要素です。イテレータは、1つの引数 (value) で呼び出されます。

Since

4.0.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): キーを変換するイテレータ。

戻り値

(Object): 構成された集計オブジェクトを返します。

var array = [
  { 'dir''left', 'code'97 },
  { 'dir''right', 'code'100 }
];
 
_.keyBy(array, function(o) {
  return String.fromCharCode(o.code);
});
// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
 
_.keyBy(array, 'dir');
// => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }

_.map(collection, [iteratee=_.identity])

ソース npm パッケージ

collection 内の各要素を iteratee を介して実行して、値の配列を作成します。イテレータは3つの引数で呼び出されます。
(value, index|key, collection).

多くの lodash メソッドは、_.every_.filter_.map_.mapValues_.reject_.some のようなメソッドのイテレータとして機能するように保護されています。

保護されたメソッドは
ary, chunk, curry, curryRight, drop, dropRight, every, fill, invert, parseInt, random, range, rangeRight, repeat, sampleSize, slice, some, sortBy, split, take, takeRight, template, trim, trimEnd, trimStart, および words

Since

0.1.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(Array): 新しいマップされた配列を返します。

function square(n) {
  return n * n;
}
 
_.map([4, 8], square);
// => [16, 64]
 
_.map({ 'a'4, 'b'8 }, square);
// => [16, 64] (iteration order is not guaranteed)
 
var users = [
  { 'user''barney' },
  { 'user''fred' }
];
 
// The `_.property` iteratee shorthand.
_.map(users, 'user');
// => ['barney', 'fred']

_.orderBy(collection, [iteratees=[_.identity]], [orders])

ソース npm パッケージ

このメソッドは_.sortByと似ていますが、ソートの基準となるイテレーターのソート順を指定できる点が異なります。orders が指定されていない場合、すべての値は昇順にソートされます。それ以外の場合は、対応する値の降順ソートには "desc"、昇順ソートには "asc" の順序を指定します。

Since

4.0.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratees=[_.identity]] (Array[]|Function[]|Object[]|string[]): ソートの基準となるイテレーター。
  3. [orders] (string[]): iteratees のソート順。

戻り値

(Array): ソートされた新しい配列を返します。

var users = [
  { 'user''fred',   'age'48 },
  { 'user''barney', 'age'34 },
  { 'user''fred',   'age'40 },
  { 'user''barney', 'age'36 }
];
 
// Sort by `user` in ascending order and by `age` in descending order.
_.orderBy(users, ['user', 'age'], ['asc', 'desc']);
// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]

_.partition(collection, [predicate=_.identity])

source npm package

要素を2つのグループに分割した配列を作成します。最初のグループには、predicate が truthy を返す要素が含まれ、2番目のグループには、predicate が falsey を返す要素が含まれます。predicate は1つの引数((value))で呼び出されます。

Since

3.0.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(Array): グループ化された要素の配列を返します。

var users = [
  { 'user''barney',  'age'36, 'active': false },
  { 'user''fred',    'age'40, 'active': true },
  { 'user''pebbles', 'age'1,  'active': false }
];
 
_.partition(users, function(o) { return o.active; });
// => objects for [['fred'], ['barney', 'pebbles']]
 
// The `_.matches` iteratee shorthand.
_.partition(users, { 'age'1, 'active': false });
// => objects for [['pebbles'], ['barney', 'fred']]
 
// The `_.matchesProperty` iteratee shorthand.
_.partition(users, ['active', false]);
// => objects for [['barney', 'pebbles'], ['fred']]
 
// The `_.property` iteratee shorthand.
_.partition(users, 'active');
// => objects for [['fred'], ['barney', 'pebbles']]

_.reduce(collection, [iteratee=_.identity], [accumulator])

source npm package

collection の各要素を iteratee で実行し、その結果を累積した値を返します。各呼び出しは、前の呼び出しの戻り値を渡されます。accumulator が指定されていない場合は、collection の最初の要素が初期値として使用されます。イテレーターは4つの引数で呼び出されます。
(accumulator, value, index|key, collection).

lodashの多くのメソッドは、_.reduce_.reduceRight、および_.transformのようなメソッドのイテレーターとして機能するようにガードされています。

保護されたメソッドは
assign, defaults, defaultsDeep, includes, merge, orderBy, および sortBy

Since

0.1.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。
  3. [accumulator] (*): 初期値。

戻り値

(*): 累積された値を返します。

_.reduce([1, 2], function(sum, n) {
  return sum + n;
}, 0);
// => 3
 
_.reduce({ 'a'1, 'b'2, 'c'1 }, function(result, value, key) {
  (result[value] || (result[value] = [])).push(key);
  return result;
}, {});
// => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)

_.reduceRight(collection, [iteratee=_.identity], [accumulator])

source npm package

このメソッドは_.reduceと似ていますが、collectionの要素を右から左に反復処理する点が異なります。

Since

0.1.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。
  3. [accumulator] (*): 初期値。

戻り値

(*): 累積された値を返します。

var array = [[0, 1], [2, 3], [4, 5]];
 
_.reduceRight(array, function(flattened, other) {
  return flattened.concat(other);
}, []);
// => [4, 5, 2, 3, 0, 1]

_.reject(collection, [predicate=_.identity])

source npm package

_.filterの逆です。このメソッドは、predicateがtruthyを返さないcollectionの要素を返します。

Since

0.1.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(Array): 新しいフィルタリングされた配列を返します。

var users = [
  { 'user''barney', 'age'36, 'active': false },
  { 'user''fred',   'age'40, 'active': true }
];
 
_.reject(users, function(o) { return !o.active; });
// => objects for ['fred']
 
// The `_.matches` iteratee shorthand.
_.reject(users, { 'age'40, 'active': true });
// => objects for ['barney']
 
// The `_.matchesProperty` iteratee shorthand.
_.reject(users, ['active', false]);
// => objects for ['fred']
 
// The `_.property` iteratee shorthand.
_.reject(users, 'active');
// => objects for ['barney']

_.sample(collection)

source npm package

collectionからランダムな要素を取得します。

Since

2.0.0

引数

  1. collection (Array|Object): サンプリングするコレクション。

戻り値

(*): ランダムな要素を返します。

_.sample([1, 2, 3, 4]);
// => 2

_.sampleSize(collection, [n=1])

source npm package

collectionから、collectionのサイズまでの範囲で、一意のキーを持つn個のランダムな要素を取得します。

Since

4.0.0

引数

  1. collection (Array|Object): サンプリングするコレクション。
  2. [n=1] (number): サンプリングする要素の数。

戻り値

(Array): ランダムな要素を返します。

_.sampleSize([1, 2, 3], 2);
// => [3, 1]
 
_.sampleSize([1, 2, 3], 4);
// => [2, 3, 1]

_.shuffle(collection)

source npm package

Fisher-Yatesシャッフルのバージョンを使用して、シャッフルされた値の配列を作成します。

Since

0.1.0

引数

  1. collection (Array|Object): シャッフルするコレクション。

戻り値

(Array): 新しいシャッフルされた配列を返します。

_.shuffle([1, 2, 3, 4]);
// => [4, 1, 3, 2]

_.size(collection)

source npm package

配列のような値の場合はその長さを返し、オブジェクトの場合は独自の列挙可能な文字列キー付きプロパティの数を返すことで、collectionのサイズを取得します。

Since

0.1.0

引数

  1. collection (Array|Object|string): 検査するコレクション。

戻り値

(number): コレクションのサイズを返します。

_.size([1, 2, 3]);
// => 3
 
_.size({ 'a'1, 'b'2 });
// => 2
 
_.size('pebbles');
// => 7

_.some(collection, [predicate=_.identity])

source npm package

predicatecollectionいずれかの要素に対してtruthyを返すかどうかを確認します。predicateがtruthyを返すと、反復処理が停止します。predicateは3つの引数((value, index|key, collection))で呼び出されます。

Since

0.1.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(boolean): いずれかの要素がpredicateのチェックに合格した場合はtrueを、それ以外の場合はfalseを返します。

_.some([null, 0, 'yes', false], Boolean);
// => true
 
var users = [
  { 'user''barney', 'active': true },
  { 'user''fred',   'active': false }
];
 
// The `_.matches` iteratee shorthand.
_.some(users, { 'user''barney', 'active': false });
// => false
 
// The `_.matchesProperty` iteratee shorthand.
_.some(users, ['active', false]);
// => true
 
// The `_.property` iteratee shorthand.
_.some(users, 'active');
// => true

_.sortBy(collection, [iteratees=[_.identity]])

source npm package

コレクションの各要素を各イテレーターで実行した結果によって昇順にソートされた要素の配列を作成します。このメソッドは安定ソートを実行します。つまり、等しい要素の元のソート順序を保持します。イテレーターは1つの引数((value))で呼び出されます。

Since

0.1.0

引数

  1. collection (Array|Object): 反復処理するコレクション。
  2. [iteratees=[_.identity]] (...(Function|Function[])): ソートの基準となるイテレーター。

戻り値

(Array): ソートされた新しい配列を返します。

var users = [
  { 'user''fred',   'age'48 },
  { 'user''barney', 'age'36 },
  { 'user''fred',   'age'40 },
  { 'user''barney', 'age'34 }
];
 
_.sortBy(users, [function(o) { return o.user; }]);
// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
 
_.sortBy(users, ['user', 'age']);
// => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]

「Date」メソッド

_.now()

source npm package

Unixエポック(1970年1月1日00:00:00 UTC)から経過したミリ秒数のタイムスタンプを取得します。

Since

2.4.0

戻り値

(number): タイムスタンプを返します。

_.defer(function(stamp) {
  console.log(_.now() - stamp);
}, _.now());
// => Logs the number of milliseconds it took for the deferred invocation.

「Function」メソッド

_.after(n, func)

source npm package

_.beforeの反対です。このメソッドは、funcn回以上呼び出されたときに一度呼び出す関数を作成します。

Since

0.1.0

引数

  1. n (number): funcが呼び出される前の呼び出し回数。
  2. func (Function): 制約する関数。

戻り値

(Function): 新しい制約された関数を返します。

var saves = ['profile', 'settings'];
 
var done = _.after(saves.length, function() {
  console.log('done saving!');
});
 
_.forEach(saves, function(type) {
  asyncSave({ 'type': type, 'complete': done });
});
// => Logs 'done saving!' after the two async saves have completed.

_.ary(func, [n=func.length])

source npm package

funcを最大n個の引数で呼び出し、それ以降の引数を無視する関数を作成します。

Since

3.0.0

引数

  1. func (Function): 引数を制限する関数。
  2. [n=func.length] (number): アリティの上限。

戻り値

(Function): 新しい上限付き関数を返します。

_.map(['6', '8', '10'], _.ary(parseInt, 1));
// => [6, 8, 10]

_.before(n, func)

source npm package

作成された関数のthisバインディングと引数を使用して、funcn回未満呼び出す関数を作成します。作成された関数への後続の呼び出しは、最後のfunc呼び出しの結果を返します。

Since

3.0.0

引数

  1. n (number): funcが呼び出されなくなる呼び出し回数。
  2. func (Function): 制約する関数。

戻り値

(Function): 新しい制約された関数を返します。

jQuery(element).on('click', _.before(5, addContactToList));
// => Allows adding up to 4 contacts to the list.

_.bind(func, thisArg, [partials])

source npm package

functhisArgthisバインディングと、受け取る引数の先頭に付加されたpartialsで呼び出す関数を作成します。

_.bind.placeholder値(モノリシックビルドではデフォルトで_)は、部分的に適用される引数のプレースホルダーとして使用できます。

注意: ネイティブのFunction#bindとは異なり、このメソッドはバインドされた関数の "length" プロパティを設定しません。

Since

0.1.0

引数

  1. func (Function): バインドする関数。
  2. thisArg (*): functhisバインディング。
  3. [partials] (...*): 部分的に適用する引数。

戻り値

(Function): 新しいバインドされた関数を返します。

function greet(greeting, punctuation) {
  return greeting + ' ' + this.user + punctuation;
}
 
var object = { 'user''fred' };
 
var bound = _.bind(greet, object, 'hi');
bound('!');
// => 'hi fred!'
 
// Bound with placeholders.
var bound = _.bind(greet, object, _, '!');
bound('hi');
// => 'hi fred!'

_.bindKey(object, key, [partials])

source npm package

object[key]のメソッドを、受け取る引数の先頭に付加されたpartialsで呼び出す関数を作成します。

このメソッドは、バインドされた関数が再定義されたり、まだ存在しない可能性のあるメソッドを参照できるようにすることで、_.bindと異なります。詳細については、Peter Michauxの記事を参照してください。

_.bindKey.placeholder値(モノリシックビルドではデフォルトで_)は、部分的に適用される引数のプレースホルダーとして使用できます。

Since

0.10.0

引数

  1. object (Object): メソッドを呼び出すオブジェクト。
  2. key (string): メソッドのキー。
  3. [partials] (...*): 部分的に適用する引数。

戻り値

(Function): 新しいバインドされた関数を返します。

var object = {
  'user''fred',
  'greet'function(greeting, punctuation) {
    return greeting + ' ' + this.user + punctuation;
  }
};
 
var bound = _.bindKey(object, 'greet', 'hi');
bound('!');
// => 'hi fred!'
 
object.greet = function(greeting, punctuation) {
  return greeting + 'ya ' + this.user + punctuation;
};
 
bound('!');
// => 'hiya fred!'
 
// Bound with placeholders.
var bound = _.bindKey(object, 'greet', _, '!');
bound('hi');
// => 'hiya fred!'

_.curry(func, [arity=func.length])

source npm package

funcの引数を受け入れ、少なくともarity個の引数が提供された場合はfuncを呼び出してその結果を返すか、残りのfuncの引数を受け入れる関数を返す関数を作成します。func.lengthが十分でない場合は、funcのアリティを指定できます。

_.curry.placeholder値(モノリシックビルドではデフォルトで_)は、提供された引数のプレースホルダーとして使用できます。

注意: このメソッドは、カリー化された関数の "length" プロパティを設定しません。

Since

2.0.0

引数

  1. func (Function): カリー化する関数。
  2. [arity=func.length] (number): funcのアリティ。

戻り値

(Function): 新しいカリー化された関数を返します。

var abc = function(a, b, c) {
  return [a, b, c];
};
 
var curried = _.curry(abc);
 
curried(1)(2)(3);
// => [1, 2, 3]
 
curried(1, 2)(3);
// => [1, 2, 3]
 
curried(1, 2, 3);
// => [1, 2, 3]
 
// Curried with placeholders.
curried(1)(_, 3)(2);
// => [1, 3, 2]

_.curryRight(func, [arity=func.length])

source npm package

このメソッドは_.curryと似ていますが、引数が_.partialの代わりに_.partialRightのようにfuncに適用される点が異なります。

_.curryRight.placeholder値(モノリシックビルドではデフォルトで_)は、提供された引数のプレースホルダーとして使用できます。

注意: このメソッドは、カリー化された関数の "length" プロパティを設定しません。

Since

3.0.0

引数

  1. func (Function): カリー化する関数。
  2. [arity=func.length] (number): funcのアリティ。

戻り値

(Function): 新しいカリー化された関数を返します。

var abc = function(a, b, c) {
  return [a, b, c];
};
 
var curried = _.curryRight(abc);
 
curried(3)(2)(1);
// => [1, 2, 3]
 
curried(2, 3)(1);
// => [1, 2, 3]
 
curried(1, 2, 3);
// => [1, 2, 3]
 
// Curried with placeholders.
curried(3)(1, _)(2);
// => [1, 2, 3]

_.debounce(func, [wait=0], [options={}])

source npm package

デバウンスされた関数を作成します。この関数は、デバウンスされた関数が最後に呼び出されてからwaitミリ秒が経過するまで、funcの呼び出しを遅延させます。デバウンスされた関数には、遅延されたfuncの呼び出しをキャンセルするcancelメソッドと、それらをすぐに呼び出すflushメソッドが付属しています。optionsを提供して、funcwaitタイムアウトの先頭および/または末尾で呼び出す必要があるかどうかを示します。funcは、デバウンスされた関数に提供された最後の引数で呼び出されます。デバウンスされた関数への後続の呼び出しは、最後のfunc呼び出しの結果を返します。

注意: leadingおよびtrailingオプションがtrueの場合、funcは、デバウンスされた関数がwaitタイムアウト中に複数回呼び出された場合にのみ、タイムアウトの末尾で呼び出されます。

wait0で、leadingfalseの場合、funcの呼び出しは、タイムアウトが0setTimeoutと同様に、次のティックまで延期されます。

_.debounce_.throttleの違いの詳細については、David Corbachoの記事を参照してください。

Since

0.1.0

引数

  1. func (Function): デバウンスする関数。
  2. [wait=0] (number): 遅延するミリ秒数。
  3. [options={}] (Object): オプションオブジェクト。
  4. [options.leading=false] (boolean): タイムアウトの先頭で呼び出すことを指定します。
  5. [options.maxWait] (number): funcが呼び出されるまでに遅延できる最大時間。
  6. [options.trailing=true] (boolean): タイムアウトの末尾エッジで呼び出すかどうかを指定します。

戻り値

(Function): 新しいデバウンスされた関数を返します。

// Avoid costly calculations while the window size is in flux.
jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 
// Invoke `sendMail` when clicked, debouncing subsequent calls.
jQuery(element).on('click', _.debounce(sendMail, 300, {
  'leading': true,
  'trailing': false
}));
 
// Ensure `batchLog` is invoked once after 1 second of debounced calls.
var debounced = _.debounce(batchLog, 250, { 'maxWait'1000 });
var source = new EventSource('/stream');
jQuery(source).on('message', debounced);
 
// Cancel the trailing debounced invocation.
jQuery(window).on('popstate', debounced.cancel);

_.defer(func, [args])

ソース npm パッケージ

現在のコールスタックがクリアされるまで、func の呼び出しを遅延させます。追加の引数は、func が呼び出されるときに提供されます。

Since

0.1.0

引数

  1. func (Function): 遅延させる関数。
  2. [args] (...*): func を呼び出す際の引数。

戻り値

(number): タイマー ID を返します。

_.defer(function(text) {
  console.log(text);
}, 'deferred');
// => Logs 'deferred' after one millisecond.

_.delay(func, wait, [args])

ソース npm パッケージ

wait ミリ秒後に func を呼び出します。追加の引数は、func が呼び出されるときに提供されます。

Since

0.1.0

引数

  1. func (Function): 遅延させる関数。
  2. wait (number): 呼び出しを遅延させるミリ秒数。
  3. [args] (...*): func を呼び出す際の引数。

戻り値

(number): タイマー ID を返します。

_.delay(function(text) {
  console.log(text);
}, 1000, 'later');
// => Logs 'later' after one second.

_.flip(func)

ソース npm パッケージ

引数が反転された状態で func を呼び出す関数を作成します。

Since

4.0.0

引数

  1. func (Function): 引数を反転する関数。

戻り値

(Function): 新しい反転された関数を返します。

var flipped = _.flip(function() {
  return _.toArray(arguments);
});
 
flipped('a', 'b', 'c', 'd');
// => ['d', 'c', 'b', 'a']

_.memoize(func, [resolver])

ソース npm パッケージ

func の結果をメモ化する関数を作成します。resolver が指定されている場合、メモ化された関数に提供される引数に基づいて結果を格納するためのキャッシュキーを決定します。デフォルトでは、メモ化された関数に提供される最初の引数がマップキャッシュキーとして使用されます。func は、メモ化された関数の this バインディングで呼び出されます。

注: キャッシュは、メモ化された関数の cache プロパティとして公開されます。その作成は、_.memoize.Cache コンストラクタを、cleardeletegethas、および setMap メソッドインターフェースを実装するインスタンスを持つコンストラクタで置き換えることでカスタマイズできます。

Since

0.1.0

引数

  1. func (Function): 出力をメモ化する関数。
  2. [resolver] (Function): キャッシュキーを解決する関数。

戻り値

(Function): 新しいメモ化された関数を返します。

var object = { 'a'1, 'b'2 };
var other = { 'c'3, 'd'4 };
 
var values = _.memoize(_.values);
values(object);
// => [1, 2]
 
values(other);
// => [3, 4]
 
object.a = 2;
values(object);
// => [1, 2]
 
// Modify the result cache.
values.cache.set(object, ['a', 'b']);
values(object);
// => ['a', 'b']
 
// Replace `_.memoize.Cache`.
_.memoize.Cache = WeakMap;

_.negate(predicate)

ソース npm パッケージ

述語 func の結果を否定する関数を作成します。func 述語は、作成された関数の this バインディングと引数で呼び出されます。

Since

3.0.0

引数

  1. predicate (Function): 否定する述語。

戻り値

(Function): 新しい否定された関数を返します。

function isEven(n) {
  return n % 2 == 0;
}
 
_.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));
// => [1, 3, 5]

_.once(func)

ソース npm パッケージ

func を一度だけ呼び出すように制限された関数を作成します。関数への繰り返し呼び出しは、最初の呼び出しの値を返します。func は、作成された関数の this バインディングと引数で呼び出されます。

Since

0.1.0

引数

  1. func (Function): 制約する関数。

戻り値

(Function): 新しい制約された関数を返します。

var initialize = _.once(createApplication);
initialize();
initialize();
// => `createApplication` is invoked once

_.overArgs(func, [transforms=[_.identity]])

ソース npm パッケージ

引数が変換された状態で func を呼び出す関数を作成します。

Since

4.0.0

引数

  1. func (Function): ラップする関数。
  2. [transforms=[_.identity]] (...(Function|Function[])): 引数の変換。

戻り値

(Function): 新しい関数を返します。

function doubled(n) {
  return n * 2;
}
 
function square(n) {
  return n * n;
}
 
var func = _.overArgs(function(x, y) {
  return [x, y];
}, [square, doubled]);
 
func(9, 3);
// => [81, 6]
 
func(10, 5);
// => [100, 10]

_.partial(func, [partials])

ソース npm パッケージ

受け取る引数の前に partials が付加された状態で func を呼び出す関数を作成します。このメソッドは、this バインディングを変更しないという点を除いて、_.bind に似ています。

モノリシックビルドではデフォルトで _ である _.partial.placeholder 値は、部分的に適用された引数のプレースホルダーとして使用できます。

注: このメソッドは、部分的に適用された関数の「length」プロパティを設定しません。

Since

0.2.0

引数

  1. func (Function): 部分的に引数を適用する関数。
  2. [partials] (...*): 部分的に適用する引数。

戻り値

(Function): 新しい部分的に適用された関数を返します。

function greet(greeting, name) {
  return greeting + ' ' + name;
}
 
var sayHelloTo = _.partial(greet, 'hello');
sayHelloTo('fred');
// => 'hello fred'
 
// Partially applied with placeholders.
var greetFred = _.partial(greet, _, 'fred');
greetFred('hi');
// => 'hi fred'

_.partialRight(func, [partials])

ソース npm パッケージ

このメソッドは、部分的に適用された引数が受け取る引数に追加されるという点を除いて、_.partial に似ています。

モノリシックビルドではデフォルトで _ である _.partialRight.placeholder 値は、部分的に適用された引数のプレースホルダーとして使用できます。

注: このメソッドは、部分的に適用された関数の「length」プロパティを設定しません。

Since

1.0.0

引数

  1. func (Function): 部分的に引数を適用する関数。
  2. [partials] (...*): 部分的に適用する引数。

戻り値

(Function): 新しい部分的に適用された関数を返します。

function greet(greeting, name) {
  return greeting + ' ' + name;
}
 
var greetFred = _.partialRight(greet, 'fred');
greetFred('hi');
// => 'hi fred'
 
// Partially applied with placeholders.
var sayHelloTo = _.partialRight(greet, 'hello', _);
sayHelloTo('fred');
// => 'hello fred'

_.rearg(func, indexes)

ソース npm パッケージ

指定された indexes に従って引数を配置した状態で func を呼び出す関数を作成します。最初のインデックスの値が最初の引数として提供され、2 番目のインデックスの値が 2 番目の引数として提供されるというようになります。

Since

3.0.0

引数

  1. func (Function): 引数を再配置する関数。
  2. indexes (...(number|number[])): 配置された引数インデックス。

戻り値

(Function): 新しい関数を返します。

var rearged = _.rearg(function(a, b, c) {
  return [a, b, c];
}, [2, 0, 1]);
 
rearged('b', 'c', 'a')
// => ['a', 'b', 'c']

_.rest(func, [start=func.length-1])

ソース npm パッケージ

作成された関数の this バインディングと、start 以降の引数を配列として提供した状態で func を呼び出す関数を作成します。

注: このメソッドは、残余引数に基づいています。

Since

4.0.0

引数

  1. func (Function): 残余引数を適用する関数。
  2. [start=func.length-1] (number): 残余引数の開始位置。

戻り値

(Function): 新しい関数を返します。

var say = _.rest(function(what, names) {
  return what + ' ' + _.initial(names).join(', ') +
    (_.size(names) > 1 ? ', & ' : '') + _.last(names);
});
 
say('hello', 'fred', 'barney', 'pebbles');
// => 'hello fred, barney, & pebbles'

_.spread(func, [start=0])

ソース npm パッケージ

作成された関数の this バインディングと、Function#apply と同様に引数の配列を渡した状態で func を呼び出す関数を作成します。

注: このメソッドは、スプレッド演算子に基づいています。

Since

3.2.0

引数

  1. func (Function): 引数を展開する関数。
  2. [start=0] (number): スプレッドの開始位置。

戻り値

(Function): 新しい関数を返します。

var say = _.spread(function(who, what) {
  return who + ' says ' + what;
});
 
say(['fred', 'hello']);
// => 'fred says hello'
 
var numbers = Promise.all([
  Promise.resolve(40),
  Promise.resolve(36)
]);
 
numbers.then(_.spread(function(x, y) {
  return x + y;
}));
// => a Promise of 76

_.throttle(func, [wait=0], [options={}])

ソース npm パッケージ

func を最大で wait ミリ秒ごとに一度だけ呼び出すスロットルされた関数を作成します。スロットルされた関数には、遅延した func の呼び出しをキャンセルする cancel メソッドと、それらをすぐに呼び出す flush メソッドが付属しています。wait タイムアウトの先頭エッジと末尾エッジのどちらで func を呼び出すべきかを示すには、options を指定します。func は、スロットルされた関数に提供された最後の引数で呼び出されます。スロットルされた関数への後続の呼び出しは、最後の func の呼び出しの結果を返します。

注: leading オプションと trailing オプションが true の場合、func は、スロットルされた関数が wait タイムアウト中に複数回呼び出された場合にのみ、タイムアウトの末尾エッジで呼び出されます。

wait0で、leadingfalseの場合、funcの呼び出しは、タイムアウトが0setTimeoutと同様に、次のティックまで延期されます。

David Corbacho の記事で、_.throttle_.debounce の違いの詳細を参照してください。

Since

0.1.0

引数

  1. func (Function): スロットルする関数。
  2. [wait=0] (number): 呼び出しをスロットルするミリ秒数。
  3. [options={}] (Object): オプションオブジェクト。
  4. [options.leading=true] (boolean): タイムアウトの先頭エッジで呼び出すかどうかを指定します。
  5. [options.trailing=true] (boolean): タイムアウトの末尾エッジで呼び出すかどうかを指定します。

戻り値

(Function): 新しいスロットルされた関数を返します。

// Avoid excessively updating the position while scrolling.
jQuery(window).on('scroll', _.throttle(updatePosition, 100));
 
// Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
jQuery(element).on('click', throttled);
 
// Cancel the trailing throttled invocation.
jQuery(window).on('popstate', throttled.cancel);

_.unary(func)

ソース npm パッケージ

最大で 1 つの引数を受け入れ、追加の引数を無視する関数を作成します。

Since

4.0.0

引数

  1. func (Function): 引数を制限する関数。

戻り値

(Function): 新しい上限付き関数を返します。

_.map(['6', '8', '10'], _.unary(parseInt));
// => [6, 8, 10]

_.wrap(value, [wrapper=identity])

ソース npm パッケージ

value を最初の引数として wrapper に提供する関数を作成します。関数に提供された追加の引数は、wrapper に提供された引数に追加されます。ラッパーは、作成された関数の this バインディングで呼び出されます。

Since

0.1.0

引数

  1. value (*): ラップする値。
  2. [wrapper=identity] (Function): ラッパー関数。

戻り値

(Function): 新しい関数を返します。

var p = _.wrap(_.escape, function(func, text) {
  return '<p>' + func(text) + '</p>';
});
 
p('fred, barney, & pebbles');
// => '<p>fred, barney, &amp; pebbles</p>'

“Lang” メソッド

_.castArray(value)

ソース npm パッケージ

value が配列でない場合に、配列としてキャストします。

Since

4.4.0

引数

  1. value (*): 検査する値。

戻り値

(Array): キャストされた配列を返します。

_.castArray(1);
// => [1]
 
_.castArray({ 'a'1 });
// => [{ 'a': 1 }]
 
_.castArray('abc');
// => ['abc']
 
_.castArray(null);
// => [null]
 
_.castArray(undefined);
// => [undefined]
 
_.castArray();
// => []
 
var array = [1, 2, 3];
console.log(_.castArray(array) === array);
// => true

_.clone(value)

ソース npm パッケージ

value のシャローコピーを作成します。

注: このメソッドは、構造化クローンアルゴリズムに大まかに基づいており、配列、配列バッファ、ブール値、日付オブジェクト、マップ、数値、Object オブジェクト、正規表現、セット、文字列、シンボル、および型付き配列のクローン作成をサポートしています。arguments オブジェクトの独自の列挙可能なプロパティは、プレーンオブジェクトとしてクローン作成されます。エラーオブジェクト、関数、DOM ノード、WeakMaps など、クローン作成できない値に対しては、空のオブジェクトが返されます。

Since

0.1.0

引数

  1. value (*): クローンを作成する値。

戻り値

(*): クローンされた値を返します。

var objects = [{ 'a'1 }, { 'b'2 }];
 
var shallow = _.clone(objects);
console.log(shallow[0] === objects[0]);
// => true

_.cloneDeep(value)

ソース npm パッケージ

このメソッドは、value を再帰的にクローンするという点を除いて、_.clone に似ています。

Since

1.0.0

引数

  1. value (*): 再帰的にクローンする値。

戻り値

(*): 深くクローンされた値を返します。

var objects = [{ 'a'1 }, { 'b'2 }];
 
var deep = _.cloneDeep(objects);
console.log(deep[0] === objects[0]);
// => false

_.cloneDeepWith(value, [customizer])

ソース npm パッケージ

このメソッドは、value を再帰的にクローンするという点を除いて、_.cloneWith に似ています。

Since

4.0.0

引数

  1. value (*): 再帰的にクローンする値。
  2. [customizer] (Function): クローン作成をカスタマイズする関数。

戻り値

(*): 深くクローンされた値を返します。

function customizer(value) {
  if (_.isElement(value)) {
    return value.cloneNode(true);
  }
}
 
var el = _.cloneDeepWith(document.body, customizer);
 
console.log(el === document.body);
// => false
console.log(el.nodeName);
// => 'BODY'
console.log(el.childNodes.length);
// => 20

_.cloneWith(value, [customizer])

ソース npm パッケージ

このメソッドは、クローンされた値を生成するために呼び出される customizer を受け入れるという点を除いて、_.clone に似ています。customizerundefined を返した場合、クローン作成は代わりにこのメソッドによって処理されます。customizer は、最大 4 つの引数 ((value [, index|key, object, stack])) で呼び出されます。

Since

4.0.0

引数

  1. value (*): クローンを作成する値。
  2. [customizer] (Function): クローン作成をカスタマイズする関数。

戻り値

(*): クローンされた値を返します。

function customizer(value) {
  if (_.isElement(value)) {
    return value.cloneNode(false);
  }
}
 
var el = _.cloneWith(document.body, customizer);
 
console.log(el === document.body);
// => false
console.log(el.nodeName);
// => 'BODY'
console.log(el.childNodes.length);
// => 0

_.conformsTo(object, source)

ソース npm パッケージ

object の対応するプロパティ値で source の述語プロパティを呼び出すことで、objectsource に準拠しているかどうかを確認します。

注: このメソッドは、source が部分的に適用されている場合、_.conforms と同等です。

Since

4.14.0

引数

  1. object (Object): 検査するオブジェクト。
  2. source (Object): 準拠するプロパティ述語のオブジェクト。

戻り値

(boolean): object が準拠している場合は true、それ以外の場合は false を返します。

var object = { 'a'1, 'b'2 };
 
_.conformsTo(object, { 'b'function(n) { return n > 1; } });
// => true
 
_.conformsTo(object, { 'b'function(n) { return n > 2; } });
// => false

_.eq(value, other)

ソース npm パッケージ

2 つの値が等しいかどうかを判断するために、SameValueZero 比較を実行します。

Since

4.0.0

引数

  1. value (*): 比較する値。
  2. other (*): 比較するもう一方の値。

戻り値

(boolean): 値が等しい場合はtrue、そうでない場合はfalseを返します。

var object = { 'a'1 };
var other = { 'a'1 };
 
_.eq(object, object);
// => true
 
_.eq(object, other);
// => false
 
_.eq('a', 'a');
// => true
 
_.eq('a', Object('a'));
// => false
 
_.eq(NaN, NaN);
// => true

_.gt(value, other)

ソース npmパッケージ

valueotherより大きいかどうかをチェックします。

Since

3.9.0

引数

  1. value (*): 比較する値。
  2. other (*): 比較するもう一方の値。

戻り値

(boolean): valueotherより大きい場合はtrue、そうでない場合はfalseを返します。

_.gt(3, 1);
// => true
 
_.gt(3, 3);
// => false
 
_.gt(1, 3);
// => false

_.gte(value, other)

ソース npmパッケージ

valueother以上かどうかをチェックします。

Since

3.9.0

引数

  1. value (*): 比較する値。
  2. other (*): 比較するもう一方の値。

戻り値

(boolean): valueother以上の場合はtrue、そうでない場合はfalseを返します。

_.gte(3, 1);
// => true
 
_.gte(3, 3);
// => true
 
_.gte(1, 3);
// => false

_.isArguments(value)

ソース npmパッケージ

valueargumentsオブジェクトである可能性が高いかどうかをチェックします。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueargumentsオブジェクトの場合はtrue、そうでない場合はfalseを返します。

_.isArguments(function() { return arguments; }());
// => true
 
_.isArguments([1, 2, 3]);
// => false

_.isArray(value)

ソース npmパッケージ

valueArrayオブジェクトとして分類されるかどうかをチェックします。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueが配列の場合はtrue、そうでない場合はfalseを返します。

_.isArray([1, 2, 3]);
// => true
 
_.isArray(document.body.children);
// => false
 
_.isArray('abc');
// => false
 
_.isArray(_.noop);
// => false

_.isArrayBuffer(value)

ソース npmパッケージ

valueArrayBufferオブジェクトとして分類されるかどうかをチェックします。

Since

4.3.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueがArrayBufferの場合はtrue、そうでない場合はfalseを返します。

_.isArrayBuffer(new ArrayBuffer(2));
// => true
 
_.isArrayBuffer(new Array(2));
// => false

_.isArrayLike(value)

ソース npmパッケージ

valueが配列ライクかどうかをチェックします。値が関数ではなく、かつvalue.length0以上Number.MAX_SAFE_INTEGER以下の整数である場合、配列ライクとみなされます。

Since

4.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueが配列ライクの場合はtrue、そうでない場合はfalseを返します。

_.isArrayLike([1, 2, 3]);
// => true
 
_.isArrayLike(document.body.children);
// => true
 
_.isArrayLike('abc');
// => true
 
_.isArrayLike(_.noop);
// => false

_.isArrayLikeObject(value)

ソース npmパッケージ

このメソッドは_.isArrayLikeに似ていますが、valueがオブジェクトであるかどうかもチェックします。

Since

4.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueが配列ライクなオブジェクトの場合はtrue、そうでない場合はfalseを返します。

_.isArrayLikeObject([1, 2, 3]);
// => true
 
_.isArrayLikeObject(document.body.children);
// => true
 
_.isArrayLikeObject('abc');
// => false
 
_.isArrayLikeObject(_.noop);
// => false

_.isBoolean(value)

ソース npmパッケージ

valueがブール型のプリミティブまたはオブジェクトとして分類されるかどうかをチェックします。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueがブール値の場合はtrue、そうでない場合はfalseを返します。

_.isBoolean(false);
// => true
 
_.isBoolean(null);
// => false

_.isBuffer(value)

ソース npmパッケージ

valueがBufferかどうかをチェックします。

Since

4.3.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueがBufferの場合はtrue、そうでない場合はfalseを返します。

_.isBuffer(new Buffer(2));
// => true
 
_.isBuffer(new Uint8Array(2));
// => false

_.isDate(value)

ソース npmパッケージ

valueDateオブジェクトとして分類されるかどうかをチェックします。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueがDateオブジェクトの場合はtrue、そうでない場合はfalseを返します。

_.isDate(new Date);
// => true
 
_.isDate('Mon April 23 2012');
// => false

_.isElement(value)

ソース npmパッケージ

valueがDOM要素である可能性が高いかどうかをチェックします。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueがDOM要素の場合はtrue、そうでない場合はfalseを返します。

_.isElement(document.body);
// => true
 
_.isElement('<body>');
// => false

_.isEmpty(value)

ソース npmパッケージ

valueが空のオブジェクト、コレクション、マップ、またはセットであるかどうかをチェックします。

オブジェクトは、列挙可能な文字列キーのプロパティを所有していない場合、空とみなされます。

argumentsオブジェクト、配列、Buffer、文字列、jQueryのようなコレクションなどの配列ライクな値は、length0の場合に空とみなされます。同様に、マップとセットは、size0の場合に空とみなされます。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueが空の場合はtrue、そうでない場合はfalseを返します。

_.isEmpty(null);
// => true
 
_.isEmpty(true);
// => true
 
_.isEmpty(1);
// => true
 
_.isEmpty([1, 2, 3]);
// => false
 
_.isEmpty({ 'a'1 });
// => false

_.isEqual(value, other)

ソース npmパッケージ

2つの値が等価であるかどうかを判断するために、それらの間で深い比較を実行します。

注: このメソッドは、配列、ArrayBuffer、ブール値、Dateオブジェクト、Errorオブジェクト、マップ、数値、Objectオブジェクト、正規表現、セット、文字列、シンボル、型付き配列の比較をサポートしています。Objectオブジェクトは、継承されたものではなく、自身の列挙可能なプロパティによって比較されます。関数とDOMノードは、厳密な等価性、つまり===によって比較されます。

Since

0.1.0

引数

  1. value (*): 比較する値。
  2. other (*): 比較するもう一方の値。

戻り値

(boolean): 値が等しい場合はtrue、そうでない場合はfalseを返します。

var object = { 'a'1 };
var other = { 'a'1 };
 
_.isEqual(object, other);
// => true
 
object === other;
// => false

_.isEqualWith(value, other, [customizer])

ソース npmパッケージ

このメソッドは_.isEqualに似ていますが、値の比較に使用されるcustomizerを受け入れる点が異なります。customizerundefinedを返した場合、比較は代わりにこのメソッドによって処理されます。customizerは、最大6つの引数((objValue, othValue [, index|key, object, other, stack]))で呼び出されます。

Since

4.0.0

引数

  1. value (*): 比較する値。
  2. other (*): 比較するもう一方の値。
  3. [customizer] (Function): 比較をカスタマイズする関数。

戻り値

(boolean): 値が等しい場合はtrue、そうでない場合はfalseを返します。

function isGreeting(value) {
  return /^h(?:i|ello)$/.test(value);
}
 
function customizer(objValue, othValue) {
  if (isGreeting(objValue) && isGreeting(othValue)) {
    return true;
  }
}
 
var array = ['hello', 'goodbye'];
var other = ['hi', 'goodbye'];
 
_.isEqualWith(array, other, customizer);
// => true

_.isError(value)

ソース npmパッケージ

valueErrorEvalErrorRangeErrorReferenceErrorSyntaxErrorTypeError、またはURIErrorオブジェクトであるかどうかをチェックします。

Since

3.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueがエラーオブジェクトの場合はtrue、そうでない場合はfalseを返します。

_.isError(new Error);
// => true
 
_.isError(Error);
// => false

_.isFinite(value)

ソース npmパッケージ

valueが有限のプリミティブ数値であるかどうかをチェックします。

注: このメソッドは、Number.isFiniteに基づいています。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueが有限の数値の場合はtrue、そうでない場合はfalseを返します。

_.isFinite(3);
// => true
 
_.isFinite(Number.MIN_VALUE);
// => true
 
_.isFinite(Infinity);
// => false
 
_.isFinite('3');
// => false

_.isFunction(value)

ソース npmパッケージ

valueFunctionオブジェクトとして分類されるかどうかをチェックします。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueが関数の場合はtrue、そうでない場合はfalseを返します。

_.isFunction(_);
// => true
 
_.isFunction(/abc/);
// => false

_.isInteger(value)

ソース npmパッケージ

valueが整数であるかどうかをチェックします。

注: このメソッドは、Number.isIntegerに基づいています。

Since

4.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueが整数の場合はtrue、そうでない場合はfalseを返します。

_.isInteger(3);
// => true
 
_.isInteger(Number.MIN_VALUE);
// => false
 
_.isInteger(Infinity);
// => false
 
_.isInteger('3');
// => false

_.isLength(value)

ソース npmパッケージ

valueが有効な配列ライクな長さであるかどうかをチェックします。

注: このメソッドは、ToLengthにゆるく基づいています。

Since

4.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueが有効な長さの場合はtrue、そうでない場合はfalseを返します。

_.isLength(3);
// => true
 
_.isLength(Number.MIN_VALUE);
// => false
 
_.isLength(Infinity);
// => false
 
_.isLength('3');
// => false

_.isMap(value)

ソース npmパッケージ

valueMapオブジェクトとして分類されるかどうかをチェックします。

Since

4.3.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueがマップの場合はtrue、そうでない場合はfalseを返します。

_.isMap(new Map);
// => true
 
_.isMap(new WeakMap);
// => false

_.isMatch(object, source)

ソース npmパッケージ

objectsourceの間で部分的な深い比較を実行し、objectに同等のプロパティ値が含まれているかどうかを判断します。

注: このメソッドは、sourceが部分的に適用されている場合は_.matchesと同等です。

部分的な比較では、空の配列および空のオブジェクトsourceの値は、それぞれ任意の配列またはオブジェクトの値と一致します。サポートされている値の比較の一覧については、_.isEqualを参照してください。

Since

3.0.0

引数

  1. object (Object): 検査するオブジェクト。
  2. source (Object): 一致させるプロパティ値のオブジェクト。

戻り値

(boolean): objectが一致する場合はtrue、そうでない場合はfalseを返します。

var object = { 'a'1, 'b'2 };
 
_.isMatch(object, { 'b'2 });
// => true
 
_.isMatch(object, { 'b'1 });
// => false

_.isMatchWith(object, source, [customizer])

ソース npmパッケージ

このメソッドは_.isMatchに似ていますが、値の比較に使用されるcustomizerを受け入れる点が異なります。customizerundefinedを返した場合、比較は代わりにこのメソッドによって処理されます。customizerは、5つの引数((objValue, srcValue, index|key, object, source))で呼び出されます。

Since

4.0.0

引数

  1. object (Object): 検査するオブジェクト。
  2. source (Object): 一致させるプロパティ値のオブジェクト。
  3. [customizer] (Function): 比較をカスタマイズする関数。

戻り値

(boolean): objectが一致する場合はtrue、そうでない場合はfalseを返します。

function isGreeting(value) {
  return /^h(?:i|ello)$/.test(value);
}
 
function customizer(objValue, srcValue) {
  if (isGreeting(objValue) && isGreeting(srcValue)) {
    return true;
  }
}
 
var object = { 'greeting''hello' };
var source = { 'greeting''hi' };
 
_.isMatchWith(object, source, customizer);
// => true

_.isNaN(value)

ソース npmパッケージ

valueNaNであるかどうかをチェックします。

注: このメソッドは、Number.isNaNに基づいており、undefinedやその他の数値以外の値に対してtrueを返すグローバルのisNaNとは異なります。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueNaNの場合はtrue、そうでない場合はfalseを返します。

_.isNaN(NaN);
// => true
 
_.isNaN(new Number(NaN));
// => true
 
isNaN(undefined);
// => true
 
_.isNaN(undefined);
// => false

_.isNative(value)

ソース npmパッケージ

valueが純粋なネイティブ関数であるかどうかをチェックします。

注意: core-js パッケージが存在する場合、このメソッドはネイティブ関数を確実に検出できません。これは、core-js がこの種の検出を回避するためです。何度も要望があったにもかかわらず、core-js のメンテナは、検出を修正しようとする試みは妨害すると明言しています。そのため、エラーをスローするしか選択肢が残されていません。残念ながら、これは core-js に依存する babel-polyfill のようなパッケージにも影響を与えます。

Since

3.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value がネイティブ関数であれば true、そうでなければ false を返します。

_.isNative(Array.prototype.push);
// => true
 
_.isNative(_);
// => false

_.isNil(value)

source npm package

valuenull または undefined であるかを確認します。

Since

4.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value が nullish であれば true、そうでなければ false を返します。

_.isNil(null);
// => true
 
_.isNil(void 0);
// => true
 
_.isNil(NaN);
// => false

_.isNull(value)

source npm package

valuenull であるかを確認します。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valuenull であれば true、そうでなければ false を返します。

_.isNull(null);
// => true
 
_.isNull(void 0);
// => false

_.isNumber(value)

source npm package

valueNumber のプリミティブまたはオブジェクトとして分類されるかを確認します。

注意: 数値として分類される Infinity-Infinity、および NaN を除外するには、_.isFinite メソッドを使用してください。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value が数値であれば true、そうでなければ false を返します。

_.isNumber(3);
// => true
 
_.isNumber(Number.MIN_VALUE);
// => true
 
_.isNumber(Infinity);
// => true
 
_.isNumber('3');
// => false

_.isObject(value)

source npm package

valueObject言語タイプであるかを確認します。(例: 配列、関数、オブジェクト、正規表現、new Number(0)、および new String(''))

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value がオブジェクトであれば true、そうでなければ false を返します。

_.isObject({});
// => true
 
_.isObject([1, 2, 3]);
// => true
 
_.isObject(_.noop);
// => true
 
_.isObject(null);
// => false

_.isObjectLike(value)

source npm package

value がオブジェクトライクであるかを確認します。値がオブジェクトライクであるとは、null でなく、かつ typeof の結果が "object" である場合を指します。

Since

4.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value がオブジェクトライクであれば true、そうでなければ false を返します。

_.isObjectLike({});
// => true
 
_.isObjectLike([1, 2, 3]);
// => true
 
_.isObjectLike(_.noop);
// => false
 
_.isObjectLike(null);
// => false

_.isPlainObject(value)

source npm package

value がプレーンオブジェクトであるか、つまり、Object コンストラクタによって作成されたオブジェクトまたは [[Prototype]]null のオブジェクトであるかを確認します。

Since

0.8.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value がプレーンオブジェクトであれば true、そうでなければ false を返します。

function Foo() {
  this.a = 1;
}
 
_.isPlainObject(new Foo);
// => false
 
_.isPlainObject([1, 2, 3]);
// => false
 
_.isPlainObject({ 'x'0, 'y'0 });
// => true
 
_.isPlainObject(Object.create(null));
// => true

_.isRegExp(value)

source npm package

valueRegExp オブジェクトとして分類されるかを確認します。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value が正規表現であれば true、そうでなければ false を返します。

_.isRegExp(/abc/);
// => true
 
_.isRegExp('/abc/');
// => false

_.isSafeInteger(value)

source npm package

value がセーフ整数であるかを確認します。整数がセーフであるとは、丸められたアンセーフ整数の結果ではない IEEE-754 倍精度数である場合を指します。

注意: このメソッドは Number.isSafeInteger に基づいています。

Since

4.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value がセーフ整数であれば true、そうでなければ false を返します。

_.isSafeInteger(3);
// => true
 
_.isSafeInteger(Number.MIN_VALUE);
// => false
 
_.isSafeInteger(Infinity);
// => false
 
_.isSafeInteger('3');
// => false

_.isSet(value)

source npm package

valueSet オブジェクトとして分類されるかを確認します。

Since

4.3.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value がセットであれば true、そうでなければ false を返します。

_.isSet(new Set);
// => true
 
_.isSet(new WeakSet);
// => false

_.isString(value)

source npm package

valueString のプリミティブまたはオブジェクトとして分類されるかを確認します。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value が文字列であれば true、そうでなければ false を返します。

_.isString('abc');
// => true
 
_.isString(1);
// => false

_.isSymbol(value)

source npm package

valueSymbol のプリミティブまたはオブジェクトとして分類されるかを確認します。

Since

4.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value がシンボルであれば true、そうでなければ false を返します。

_.isSymbol(Symbol.iterator);
// => true
 
_.isSymbol('abc');
// => false

_.isTypedArray(value)

source npm package

value が型付き配列として分類されるかを確認します。

Since

3.0.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value が型付き配列であれば true、そうでなければ false を返します。

_.isTypedArray(new Uint8Array);
// => true
 
_.isTypedArray([]);
// => false

_.isUndefined(value)

source npm package

valueundefined であるかを確認します。

Since

0.1.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): valueundefined であれば true、そうでなければ false を返します。

_.isUndefined(void 0);
// => true
 
_.isUndefined(null);
// => false

_.isWeakMap(value)

source npm package

valueWeakMap オブジェクトとして分類されるかを確認します。

Since

4.3.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value が WeakMap であれば true、そうでなければ false を返します。

_.isWeakMap(new WeakMap);
// => true
 
_.isWeakMap(new Map);
// => false

_.isWeakSet(value)

source npm package

valueWeakSet オブジェクトとして分類されるかを確認します。

Since

4.3.0

引数

  1. value (*): チェックする値。

戻り値

(boolean): value が WeakSet であれば true、そうでなければ false を返します。

_.isWeakSet(new WeakSet);
// => true
 
_.isWeakSet(new Set);
// => false

_.lt(value, other)

source npm package

valueother より小さいかを確認します。

Since

3.9.0

引数

  1. value (*): 比較する値。
  2. other (*): 比較するもう一方の値。

戻り値

(boolean): valueother より小さければ true、そうでなければ false を返します。

_.lt(1, 3);
// => true
 
_.lt(3, 3);
// => false
 
_.lt(3, 1);
// => false

_.lte(value, other)

source npm package

valueother 以下であるかを確認します。

Since

3.9.0

引数

  1. value (*): 比較する値。
  2. other (*): 比較するもう一方の値。

戻り値

(boolean): valueother 以下であれば true、そうでなければ false を返します。

_.lte(1, 3);
// => true
 
_.lte(3, 3);
// => true
 
_.lte(3, 1);
// => false

_.toArray(value)

source npm package

value を配列に変換します。

Since

0.1.0

引数

  1. value (*): 変換する値。

戻り値

(Array): 変換された配列を返します。

_.toArray({ 'a'1, 'b'2 });
// => [1, 2]
 
_.toArray('abc');
// => ['a', 'b', 'c']
 
_.toArray(1);
// => []
 
_.toArray(null);
// => []

_.toFinite(value)

source npm package

value を有限数に変換します。

Since

4.12.0

引数

  1. value (*): 変換する値。

戻り値

(number): 変換された数値を返します。

_.toFinite(3.2);
// => 3.2
 
_.toFinite(Number.MIN_VALUE);
// => 5e-324
 
_.toFinite(Infinity);
// => 1.7976931348623157e+308
 
_.toFinite('3.2');
// => 3.2

_.toInteger(value)

source npm package

value を整数に変換します。

注意: このメソッドは ToInteger に大まかに基づいています。

Since

4.0.0

引数

  1. value (*): 変換する値。

戻り値

(number): 変換された整数を返します。

_.toInteger(3.2);
// => 3
 
_.toInteger(Number.MIN_VALUE);
// => 0
 
_.toInteger(Infinity);
// => 1.7976931348623157e+308
 
_.toInteger('3.2');
// => 3

_.toLength(value)

source npm package

value を配列ライクオブジェクトの長さとして使用するのに適した整数に変換します。

注意: このメソッドは ToLength に基づいています。

Since

4.0.0

引数

  1. value (*): 変換する値。

戻り値

(number): 変換された整数を返します。

_.toLength(3.2);
// => 3
 
_.toLength(Number.MIN_VALUE);
// => 0
 
_.toLength(Infinity);
// => 4294967295
 
_.toLength('3.2');
// => 3

_.toNumber(value)

source npm package

value を数値に変換します。

Since

4.0.0

引数

  1. value (*): 処理する値。

戻り値

(number): 数値を返します。

_.toNumber(3.2);
// => 3.2
 
_.toNumber(Number.MIN_VALUE);
// => 5e-324
 
_.toNumber(Infinity);
// => Infinity
 
_.toNumber('3.2');
// => 3.2

_.toPlainObject(value)

source npm package

value をプレーンオブジェクトに変換し、value の継承された列挙可能な文字列キープロパティをプレーンオブジェクトの独自のプロパティにフラット化します。

Since

3.0.0

引数

  1. value (*): 変換する値。

戻り値

(Object): 変換されたプレーンオブジェクトを返します。

function Foo() {
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.assign({ 'a'1 }, new Foo);
// => { 'a': 1, 'b': 2 }
 
_.assign({ 'a'1 }, _.toPlainObject(new Foo));
// => { 'a': 1, 'b': 2, 'c': 3 }

_.toSafeInteger(value)

source npm package

value をセーフ整数に変換します。セーフ整数は、正しく比較および表現できます。

Since

4.0.0

引数

  1. value (*): 変換する値。

戻り値

(number): 変換された整数を返します。

_.toSafeInteger(3.2);
// => 3
 
_.toSafeInteger(Number.MIN_VALUE);
// => 0
 
_.toSafeInteger(Infinity);
// => 9007199254740991
 
_.toSafeInteger('3.2');
// => 3

_.toString(value)

source npm package

value を文字列に変換します。null および undefined 値には空文字列が返されます。-0 の符号は保持されます。

Since

4.0.0

引数

  1. value (*): 変換する値。

戻り値

(string): 変換された文字列を返します。

_.toString(null);
// => ''
 
_.toString(-0);
// => '-0'
 
_.toString([1, 2, 3]);
// => '1,2,3'

“Math” メソッド

_.add(augend, addend)

source npm package

2 つの数値を加算します。

Since

3.4.0

引数

  1. augend (number): 加算における最初の数値。
  2. addend (number): 加算における 2 番目の数値。

戻り値

(number): 合計を返します。

_.add(6, 4);
// => 10

_.ceil(number, [precision=0])

source npm package

numberprecision に切り上げて計算します。

Since

3.10.0

引数

  1. number (number): 切り上げる数値。
  2. [precision=0] (number): 切り上げる精度。

戻り値

(number): 切り上げられた数値を返します。

_.ceil(4.006);
// => 5
 
_.ceil(6.004, 2);
// => 6.01
 
_.ceil(6040, -2);
// => 6100

_.divide(dividend, divisor)

source npm package

2 つの数値を割ります。

Since

4.7.0

引数

  1. dividend (number): 除算における最初の数値。
  2. divisor (number): 除算における 2 番目の数値。

戻り値

(number): 商を返します。

_.divide(6, 4);
// => 1.5

_.floor(number, [precision=0])

source npm package

numberprecision に切り捨てて計算します。

Since

3.10.0

引数

  1. number (number): 切り捨てる数値。
  2. [precision=0] (number): 切り捨てる精度。

戻り値

(number): 切り捨てられた数値を返します。

_.floor(4.006);
// => 4
 
_.floor(0.046, 2);
// => 0.04
 
_.floor(4060, -2);
// => 4000

_.max(array)

source npm package

array の最大値を計算します。array が空または falsy の場合、undefined が返されます。

Since

0.1.0

引数

  1. array (Array): 反復処理する配列。

戻り値

(*): 最大値を返します。

_.max([4, 2, 8, 6]);
// => 8
 
_.max([]);
// => undefined

_.maxBy(array, [iteratee=_.identity])

source npm package

このメソッドは、_.max と似ていますが、array の各要素に対して呼び出され、値をランク付けするための基準を生成する iteratee を受け入れる点が異なります。イテレータは1つの引数 (value) で呼び出されます。

Since

4.0.0

引数

  1. array (Array): 反復処理する配列。
  2. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(*): 最大値を返します。

var objects = [{ 'n'1 }, { 'n'2 }];
 
_.maxBy(objects, function(o) { return o.n; });
// => { 'n': 2 }
 
// The `_.property` iteratee shorthand.
_.maxBy(objects, 'n');
// => { 'n': 2 }

_.mean(array)

source npm package

array 内の値の平均を計算します。

Since

4.0.0

引数

  1. array (Array): 反復処理する配列。

戻り値

(number): 平均を返します。

_.mean([4, 2, 8, 6]);
// => 5

_.meanBy(array, [iteratee=_.identity])

source npm package

このメソッドは、_.mean と似ていますが、array の各要素に対して呼び出され、平均化される値を生成する iteratee を受け入れる点が異なります。イテレータは1つの引数 (value) で呼び出されます。

Since

4.7.0

引数

  1. array (Array): 反復処理する配列。
  2. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(number): 平均を返します。

var objects = [{ 'n'4 }, { 'n'2 }, { 'n'8 }, { 'n'6 }];
 
_.meanBy(objects, function(o) { return o.n; });
// => 5
 
// The `_.property` iteratee shorthand.
_.meanBy(objects, 'n');
// => 5

_.min(array)

source npm package

array の最小値を計算します。array が空または falsy の場合、undefined が返されます。

Since

0.1.0

引数

  1. array (Array): 反復処理する配列。

戻り値

(*): 最小値を返します。

_.min([4, 2, 8, 6]);
// => 2
 
_.min([]);
// => undefined

_.minBy(array, [iteratee=_.identity])

source npm package

このメソッドは、_.min と似ていますが、array の各要素に対して呼び出され、値をランク付けするための基準を生成する iteratee を受け入れる点が異なります。イテレータは1つの引数 (value) で呼び出されます。

Since

4.0.0

引数

  1. array (Array): 反復処理する配列。
  2. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(*): 最小値を返します。

var objects = [{ 'n'1 }, { 'n'2 }];
 
_.minBy(objects, function(o) { return o.n; });
// => { 'n': 1 }
 
// The `_.property` iteratee shorthand.
_.minBy(objects, 'n');
// => { 'n': 1 }

_.multiply(multiplier, multiplicand)

source npm package

2つの数値を乗算します。

Since

4.7.0

引数

  1. multiplier (number): 乗算における最初の数値。
  2. multiplicand (number): 乗算における2番目の数値。

戻り値

(number): 積を返します。

_.multiply(6, 4);
// => 24

_.round(number, [precision=0])

source npm package

numberprecision に丸めた値を計算します。

Since

3.10.0

引数

  1. number (number): 丸める数値。
  2. [precision=0] (number): 丸める精度。

戻り値

(number): 丸められた数値を返します。

_.round(4.006);
// => 4
 
_.round(4.006, 2);
// => 4.01
 
_.round(4060, -2);
// => 4100

_.subtract(minuend, subtrahend)

source npm package

2つの数値を減算します。

Since

4.0.0

引数

  1. minuend (number): 減算における最初の数値。
  2. subtrahend (number): 減算における2番目の数値。

戻り値

(number): 差を返します。

_.subtract(6, 4);
// => 2

_.sum(array)

source npm package

array 内の値の合計を計算します。

Since

3.4.0

引数

  1. array (Array): 反復処理する配列。

戻り値

(number): 合計を返します。

_.sum([4, 2, 8, 6]);
// => 20

_.sumBy(array, [iteratee=_.identity])

source npm package

このメソッドは、_.sum と似ていますが、array の各要素に対して呼び出され、合計される値を生成する iteratee を受け入れる点が異なります。イテレータは1つの引数 (value) で呼び出されます。

Since

4.0.0

引数

  1. array (Array): 反復処理する配列。
  2. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(number): 合計を返します。

var objects = [{ 'n'4 }, { 'n'2 }, { 'n'8 }, { 'n'6 }];
 
_.sumBy(objects, function(o) { return o.n; });
// => 20
 
// The `_.property` iteratee shorthand.
_.sumBy(objects, 'n');
// => 20

“数値” メソッド

_.clamp(number, [lower], upper)

source npm package

number を包括的な lower および upper の境界内にクランプします。

Since

4.0.0

引数

  1. number (number): クランプする数値。
  2. [lower] (number): 下限。
  3. upper (number): 上限。

戻り値

(number): クランプされた数値を返します。

_.clamp(-10, -5, 5);
// => -5
 
_.clamp(10, -5, 5);
// => 5

_.inRange(number, [start=0], end)

source npm package

nstart から end(ただし、end は含まない)の間にあるかどうかを確認します。end が指定されていない場合は、start に設定され、start0 に設定されます。startend より大きい場合、負の範囲をサポートするためにパラメータが交換されます。

Since

3.3.0

引数

  1. number (number): チェックする数値。
  2. [start=0] (number): 範囲の開始。
  3. end (number): 範囲の終了。

戻り値

(boolean): number が範囲内にある場合は true、そうでない場合は false を返します。

_.inRange(3, 2, 4);
// => true
 
_.inRange(4, 8);
// => true
 
_.inRange(4, 2);
// => false
 
_.inRange(2, 2);
// => false
 
_.inRange(1.2, 2);
// => true
 
_.inRange(5.2, 4);
// => false
 
_.inRange(-3, -2, -6);
// => true

_.random([lower=0], [upper=1], [floating])

source npm package

包括的な lower および upper の境界の間で乱数を生成します。引数が1つだけ指定された場合、0 から指定された数値の間の数値が返されます。floatingtrue の場合、または lower または upper のいずれかが浮動小数点数の場合、整数ではなく浮動小数点数が返されます。

注意: JavaScript は浮動小数点数の値を解決するために IEEE-754 標準に従っており、予期しない結果が生じる可能性があります。

Since

0.7.0

引数

  1. [lower=0] (number): 下限。
  2. [upper=1] (number): 上限。
  3. [floating] (boolean): 浮動小数点数を返すことを指定します。

戻り値

(number): 乱数を返します。

_.random(0, 5);
// => an integer between 0 and 5
 
_.random(5);
// => also an integer between 0 and 5
 
_.random(5, true);
// => a floating-point number between 0 and 5
 
_.random(1.2, 5.2);
// => a floating-point number between 1.2 and 5.2

“オブジェクト” メソッド

_.assign(object, [sources])

source npm package

ソースオブジェクトの独自の列挙可能な文字列キー付きプロパティを、宛先オブジェクトに割り当てます。ソースオブジェクトは左から右に適用されます。後続のソースは、前のソースのプロパティの割り当てを上書きします。

注意: このメソッドは object を変更し、Object.assign に緩く基づいています。

Since

0.10.0

引数

  1. object (Object): 宛先オブジェクト。
  2. [sources] (...Object): ソースオブジェクト。

戻り値

(Object): object を返します。

function Foo() {
  this.a = 1;
}
 
function Bar() {
  this.c = 3;
}
 
Foo.prototype.b = 2;
Bar.prototype.d = 4;
 
_.assign({ 'a'0 }, new Foo, new Bar);
// => { 'a': 1, 'c': 3 }

_.assignIn(object, [sources])

source npm package

このメソッドは、_.assign と似ていますが、独自のソースプロパティと継承されたソースプロパティを反復処理する点が異なります。

注意: このメソッドは object を変更します。

Since

4.0.0

エイリアス

_.extend

引数

  1. object (Object): 宛先オブジェクト。
  2. [sources] (...Object): ソースオブジェクト。

戻り値

(Object): object を返します。

function Foo() {
  this.a = 1;
}
 
function Bar() {
  this.c = 3;
}
 
Foo.prototype.b = 2;
Bar.prototype.d = 4;
 
_.assignIn({ 'a'0 }, new Foo, new Bar);
// => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }

_.assignInWith(object, sources, [customizer])

source npm package

このメソッドは、_.assignIn と似ていますが、割り当てられた値を生成するために呼び出される customizer を受け入れる点が異なります。customizerundefined を返した場合、割り当てはメソッドによって処理されます。customizer は、5つの引数 (objValue, srcValue, key, object, source) で呼び出されます。

注意: このメソッドは object を変更します。

Since

4.0.0

エイリアス

_.extendWith

引数

  1. object (Object): 宛先オブジェクト。
  2. sources (...Object): ソースオブジェクト。
  3. [customizer] (Function): 割り当てられた値をカスタマイズする関数。

戻り値

(Object): object を返します。

function customizer(objValue, srcValue) {
  return _.isUndefined(objValue) ? srcValue : objValue;
}
 
var defaults = _.partialRight(_.assignInWith, customizer);
 
defaults({ 'a'1 }, { 'b'2 }, { 'a'3 });
// => { 'a': 1, 'b': 2 }

_.assignWith(object, sources, [customizer])

source npm package

このメソッドは、_.assign と似ていますが、割り当てられた値を生成するために呼び出される customizer を受け入れる点が異なります。customizerundefined を返した場合、割り当てはメソッドによって処理されます。customizer は、5つの引数 (objValue, srcValue, key, object, source) で呼び出されます。

注意: このメソッドは object を変更します。

Since

4.0.0

引数

  1. object (Object): 宛先オブジェクト。
  2. sources (...Object): ソースオブジェクト。
  3. [customizer] (Function): 割り当てられた値をカスタマイズする関数。

戻り値

(Object): object を返します。

function customizer(objValue, srcValue) {
  return _.isUndefined(objValue) ? srcValue : objValue;
}
 
var defaults = _.partialRight(_.assignWith, customizer);
 
defaults({ 'a'1 }, { 'b'2 }, { 'a'3 });
// => { 'a': 1, 'b': 2 }

_.at(object, [paths])

source npm package

objectpaths に対応する値の配列を作成します。

Since

1.0.0

引数

  1. object (Object): 反復処理するオブジェクト。
  2. [paths] (...(string|string[])): ピックするプロパティパス。

戻り値

(Array): ピックされた値を返します。

var object = { 'a': [{ 'b': { 'c'3 } }, 4] };
 
_.at(object, ['a[0].b.c', 'a[1]']);
// => [3, 4]

_.create(prototype, [properties])

source npm package

prototype オブジェクトから継承するオブジェクトを作成します。properties オブジェクトが指定されている場合は、独自の列挙可能な文字列キー付きプロパティが作成されたオブジェクトに割り当てられます。

Since

2.3.0

引数

  1. prototype (Object): 継承するオブジェクト。
  2. [properties] (Object): オブジェクトに割り当てるプロパティ。

戻り値

(Object): 新しいオブジェクトを返します。

function Shape() {
  this.x = 0;
  this.y = 0;
}
 
function Circle() {
  Shape.call(this);
}
 
Circle.prototype = _.create(Shape.prototype, {
  'constructor': Circle
});
 
var circle = new Circle;
circle instanceof Circle;
// => true
 
circle instanceof Shape;
// => true

_.defaults(object, [sources])

source npm package

ソースオブジェクトの独自のおよび継承された列挙可能な文字列キー付きプロパティを、undefined に解決されるすべての宛先プロパティの宛先オブジェクトに割り当てます。ソースオブジェクトは左から右に適用されます。プロパティが設定されると、同じプロパティの追加の値は無視されます。

注意: このメソッドは object を変更します。

Since

0.1.0

引数

  1. object (Object): 宛先オブジェクト。
  2. [sources] (...Object): ソースオブジェクト。

戻り値

(Object): object を返します。

_.defaults({ 'a'1 }, { 'b'2 }, { 'a'3 });
// => { 'a': 1, 'b': 2 }

_.defaultsDeep(object, [sources])

source npm package

このメソッドは、_.defaults と似ていますが、デフォルトのプロパティを再帰的に割り当てる点が異なります。

注意: このメソッドは object を変更します。

Since

3.10.0

引数

  1. object (Object): 宛先オブジェクト。
  2. [sources] (...Object): ソースオブジェクト。

戻り値

(Object): object を返します。

_.defaultsDeep({ 'a': { 'b'2 } }, { 'a': { 'b'1, 'c'3 } });
// => { 'a': { 'b': 2, 'c': 3 } }

_.findKey(object, [predicate=_.identity])

source npm package

このメソッドは、_.find と似ていますが、要素自体ではなく、最初に predicate が truthy を返す要素のキーを返す点が異なります。

Since

1.1.0

引数

  1. object (Object): 検査するオブジェクト。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(*): 一致した要素のキー、それ以外の場合は undefined を返します。

var users = {
  'barney':  { 'age'36, 'active': true },
  'fred':    { 'age'40, 'active': false },
  'pebbles': { 'age'1,  'active': true }
};
 
_.findKey(users, function(o) { return o.age < 40; });
// => 'barney' (iteration order is not guaranteed)
 
// The `_.matches` iteratee shorthand.
_.findKey(users, { 'age'1, 'active': true });
// => 'pebbles'
 
// The `_.matchesProperty` iteratee shorthand.
_.findKey(users, ['active', false]);
// => 'fred'
 
// The `_.property` iteratee shorthand.
_.findKey(users, 'active');
// => 'barney'

_.findLastKey(object, [predicate=_.identity])

source npm package

このメソッドは、_.findKey と似ていますが、コレクションの要素を逆順に反復処理する点が異なります。

Since

2.0.0

引数

  1. object (Object): 検査するオブジェクト。
  2. [predicate=_.identity] (Function): イテレーションごとに呼び出される関数。

戻り値

(*): 一致した要素のキー、それ以外の場合は undefined を返します。

var users = {
  'barney':  { 'age'36, 'active': true },
  'fred':    { 'age'40, 'active': false },
  'pebbles': { 'age'1,  'active': true }
};
 
_.findLastKey(users, function(o) { return o.age < 40; });
// => returns 'pebbles' assuming `_.findKey` returns 'barney'
 
// The `_.matches` iteratee shorthand.
_.findLastKey(users, { 'age'36, 'active': true });
// => 'barney'
 
// The `_.matchesProperty` iteratee shorthand.
_.findLastKey(users, ['active', false]);
// => 'fred'
 
// The `_.property` iteratee shorthand.
_.findLastKey(users, 'active');
// => 'pebbles'

_.forIn(object, [iteratee=_.identity])

source npm package

オブジェクトの独自および継承された列挙可能な文字列キー付きプロパティを反復処理し、各プロパティに対して iteratee を呼び出します。イテレータは、3つの引数 (value, key, object) で呼び出されます。イテレータ関数は、明示的に false を返すことで、反復処理を早期に終了できます。

Since

0.3.0

引数

  1. object (Object): 反復処理するオブジェクト。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(Object): object を返します。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.forIn(new Foo, function(value, key) {
  console.log(key);
});
// => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).

_.forInRight(object, [iteratee=_.identity])

ソース npm パッケージ

このメソッドは、_.forIn と似ていますが、object のプロパティを逆順に反復処理します。

Since

2.0.0

引数

  1. object (Object): 反復処理するオブジェクト。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(Object): object を返します。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.forInRight(new Foo, function(value, key) {
  console.log(key);
});
// => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.

_.forOwn(object, [iteratee=_.identity])

ソース npm パッケージ

オブジェクトの列挙可能な独自の文字列キー付きプロパティを反復処理し、各プロパティに対して iteratee を呼び出します。イテレータは 3 つの引数 ((value, key, object)) で呼び出されます。イテレータ関数は、false を明示的に返すことで、早期に反復処理を終了できます。

Since

0.3.0

引数

  1. object (Object): 反復処理するオブジェクト。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(Object): object を返します。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.forOwn(new Foo, function(value, key) {
  console.log(key);
});
// => Logs 'a' then 'b' (iteration order is not guaranteed).

_.forOwnRight(object, [iteratee=_.identity])

ソース npm パッケージ

このメソッドは、_.forOwn と似ていますが、object のプロパティを逆順に反復処理します。

Since

2.0.0

引数

  1. object (Object): 反復処理するオブジェクト。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(Object): object を返します。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.forOwnRight(new Foo, function(value, key) {
  console.log(key);
});
// => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.

_.functions(object)

ソース npm パッケージ

object の列挙可能な独自のプロパティから関数プロパティ名の配列を作成します。

Since

0.1.0

引数

  1. object (Object): 検査するオブジェクト。

戻り値

(配列): 関数名を返します。

function Foo() {
  this.a = _.constant('a');
  this.b = _.constant('b');
}
 
Foo.prototype.c = _.constant('c');
 
_.functions(new Foo);
// => ['a', 'b']

_.functionsIn(object)

ソース npm パッケージ

object の列挙可能な独自のプロパティと継承されたプロパティから関数プロパティ名の配列を作成します。

Since

4.0.0

引数

  1. object (Object): 検査するオブジェクト。

戻り値

(配列): 関数名を返します。

function Foo() {
  this.a = _.constant('a');
  this.b = _.constant('b');
}
 
Foo.prototype.c = _.constant('c');
 
_.functionsIn(new Foo);
// => ['a', 'b', 'c']

_.get(object, path, [defaultValue])

ソース npm パッケージ

objectpath にある値を取得します。解決された値が undefined の場合は、代わりに defaultValue が返されます。

Since

3.7.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。
  2. path (配列|文字列): 取得するプロパティのパス。
  3. [defaultValue] (*): 解決された値が undefined の場合に返される値。

戻り値

(*): 解決された値を返します。

var object = { 'a': [{ 'b': { 'c'3 } }] };
 
_.get(object, 'a[0].b.c');
// => 3
 
_.get(object, ['a', '0', 'b', 'c']);
// => 3
 
_.get(object, 'a.b.c', 'default');
// => 'default'

_.has(object, path)

ソース npm パッケージ

pathobject の直接のプロパティであるかどうかを確認します。

Since

0.1.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。
  2. path (配列|文字列): 確認するパス。

戻り値

(ブール値): path が存在する場合は true を、存在しない場合は false を返します。

var object = { 'a': { 'b'2 } };
var other = _.create({ 'a': _.create({ 'b'2 }) });
 
_.has(object, 'a');
// => true
 
_.has(object, 'a.b');
// => true
 
_.has(object, ['a', 'b']);
// => true
 
_.has(other, 'a');
// => false

_.hasIn(object, path)

ソース npm パッケージ

pathobject の直接または継承されたプロパティであるかどうかを確認します。

Since

4.0.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。
  2. path (配列|文字列): 確認するパス。

戻り値

(ブール値): path が存在する場合は true を、存在しない場合は false を返します。

var object = _.create({ 'a': _.create({ 'b'2 }) });
 
_.hasIn(object, 'a');
// => true
 
_.hasIn(object, 'a.b');
// => true
 
_.hasIn(object, ['a', 'b']);
// => true
 
_.hasIn(object, 'b');
// => false

_.invert(object)

ソース npm パッケージ

object のキーと値を反転したオブジェクトを作成します。object に重複する値が含まれている場合、後続の値は以前の値のプロパティ割り当てを上書きします。

Since

0.7.0

引数

  1. object (オブジェクト): 反転するオブジェクト。

戻り値

(オブジェクト): 新しい反転されたオブジェクトを返します。

var object = { 'a'1, 'b'2, 'c'1 };
 
_.invert(object);
// => { '1': 'c', '2': 'b' }

_.invertBy(object, [iteratee=_.identity])

ソース npm パッケージ

このメソッドは _.invert と似ていますが、反転されたオブジェクトは、object の各要素を iteratee を介して実行した結果から生成されます。反転された各キーの対応する反転された値は、反転された値を生成する責任のあるキーの配列です。イテレータは 1 つの引数 ((value)) で呼び出されます。

Since

4.1.0

引数

  1. object (オブジェクト): 反転するオブジェクト。
  2. [iteratee=_.identity] (Function): 要素ごとに呼び出されるiteratee。

戻り値

(オブジェクト): 新しい反転されたオブジェクトを返します。

var object = { 'a'1, 'b'2, 'c'1 };
 
_.invertBy(object);
// => { '1': ['a', 'c'], '2': ['b'] }
 
_.invertBy(object, function(value) {
  return 'group' + value;
});
// => { 'group1': ['a', 'c'], 'group2': ['b'] }

_.invoke(object, path, [args])

ソース npm パッケージ

objectpath にあるメソッドを呼び出します。

Since

4.0.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。
  2. path (配列|文字列): 呼び出すメソッドのパス。
  3. [args] (...*): メソッドを呼び出すための引数。

戻り値

(*): 呼び出されたメソッドの結果を返します。

var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };
 
_.invoke(object, 'a[0].b.c.slice', 1, 3);
// => [2, 3]

_.keys(object)

ソース npm パッケージ

object の列挙可能な独自のプロパティ名の配列を作成します。

注: オブジェクト以外の値はオブジェクトに強制変換されます。詳細については、ES 仕様 を参照してください。

Since

0.1.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。

戻り値

(配列): プロパティ名の配列を返します。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.keys(new Foo);
// => ['a', 'b'] (iteration order is not guaranteed)
 
_.keys('hi');
// => ['0', '1']

_.keysIn(object)

ソース npm パッケージ

object の列挙可能な独自のプロパティ名と継承されたプロパティ名の配列を作成します。

注: オブジェクト以外の値はオブジェクトに強制変換されます。

Since

3.0.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。

戻り値

(配列): プロパティ名の配列を返します。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.keysIn(new Foo);
// => ['a', 'b', 'c'] (iteration order is not guaranteed)

_.mapKeys(object, [iteratee=_.identity])

ソース npm パッケージ

_.mapValues の反対です。このメソッドは、object と同じ値を持ち、object の各列挙可能な独自の文字列キー付きプロパティを iteratee を介して実行して生成されたキーを持つオブジェクトを作成します。イテレータは 3 つの引数 ((value, key, object)) で呼び出されます。

Since

3.8.0

引数

  1. object (Object): 反復処理するオブジェクト。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(オブジェクト): 新しいマップされたオブジェクトを返します。

_.mapKeys({ 'a'1, 'b'2 }, function(value, key) {
  return key + value;
});
// => { 'a1': 1, 'b2': 2 }

_.mapValues(object, [iteratee=_.identity])

ソース npm パッケージ

object と同じキーを持ち、object の列挙可能な独自の文字列キー付きプロパティをそれぞれ iteratee を介して実行して生成された値を持つオブジェクトを作成します。イテレータは 3 つの引数で呼び出されます
(value, key, object).

Since

2.4.0

引数

  1. object (Object): 反復処理するオブジェクト。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(オブジェクト): 新しいマップされたオブジェクトを返します。

var users = {
  'fred':    { 'user''fred',    'age'40 },
  'pebbles': { 'user''pebbles', 'age'1 }
};
 
_.mapValues(users, function(o) { return o.age; });
// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
 
// The `_.property` iteratee shorthand.
_.mapValues(users, 'age');
// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)

_.merge(object, [sources])

ソース npm パッケージ

このメソッドは _.assign と似ていますが、ソースオブジェクトの列挙可能な独自の文字列キー付きプロパティと継承されたプロパティを宛先オブジェクトに再帰的にマージする点が異なります。宛先値が存在する場合、undefined に解決されるソースプロパティはスキップされます。配列とプレーンオブジェクトのプロパティは再帰的にマージされます。その他のオブジェクトと値の型は、割り当てによって上書きされます。ソースオブジェクトは左から右に適用されます。後続のソースは、以前のソースのプロパティ割り当てを上書きします。

注意: このメソッドは object を変更します。

Since

0.5.0

引数

  1. object (Object): 宛先オブジェクト。
  2. [sources] (...Object): ソースオブジェクト。

戻り値

(Object): object を返します。

var object = {
  'a': [{ 'b'2 }, { 'd'4 }]
};
 
var other = {
  'a': [{ 'c'3 }, { 'e'5 }]
};
 
_.merge(object, other);
// => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }

_.mergeWith(object, sources, customizer)

ソース npm パッケージ

このメソッドは _.merge と似ていますが、宛先プロパティとソースプロパティのマージされた値を生成するために呼び出される customizer を受け入れる点が異なります。customizerundefined を返す場合、代わりにメソッドによってマージが処理されます。customizer は 6 つの引数で呼び出されます
(objValue, srcValue, key, object, source, stack).

注意: このメソッドは object を変更します。

Since

4.0.0

引数

  1. object (Object): 宛先オブジェクト。
  2. sources (...Object): ソースオブジェクト。
  3. customizer (関数): 割り当てられた値をカスタマイズする関数。

戻り値

(Object): object を返します。

function customizer(objValue, srcValue) {
  if (_.isArray(objValue)) {
    return objValue.concat(srcValue);
  }
}
 
var object = { 'a': [1], 'b': [2] };
var other = { 'a': [3], 'b': [4] };
 
_.mergeWith(object, other, customizer);
// => { 'a': [1, 3], 'b': [2, 4] }

_.omit(object, [paths])

ソース npm パッケージ

_.pick の反対です。このメソッドは、省略されていない object の列挙可能な独自のプロパティと継承されたプロパティパスで構成されるオブジェクトを作成します。

注: このメソッドは _.pick よりもかなり遅いです。

Since

0.1.0

引数

  1. object (オブジェクト): ソースオブジェクト。
  2. [paths] (...(文字列|文字列配列)): 省略するプロパティパス。

戻り値

(Object): 新しいオブジェクトを返します。

var object = { 'a'1, 'b''2', 'c'3 };
 
_.omit(object, ['a', 'c']);
// => { 'b': '2' }

_.omitBy(object, [predicate=_.identity])

ソース npm パッケージ

_.pickBy の反対です。このメソッドは、predicate が真理値を返さない object の列挙可能な独自の文字列キー付きプロパティと継承されたプロパティで構成されるオブジェクトを作成します。述語は 2 つの引数 ((value, key)) で呼び出されます。

Since

4.0.0

引数

  1. object (オブジェクト): ソースオブジェクト。
  2. [predicate=_.identity] (関数): プロパティごとに呼び出される関数。

戻り値

(Object): 新しいオブジェクトを返します。

var object = { 'a'1, 'b''2', 'c'3 };
 
_.omitBy(object, _.isNumber);
// => { 'b': '2' }

_.pick(object, [paths])

ソース npm パッケージ

選択された object プロパティで構成されるオブジェクトを作成します。

Since

0.1.0

引数

  1. object (オブジェクト): ソースオブジェクト。
  2. [paths] (...(string|string[])): ピックするプロパティパス。

戻り値

(Object): 新しいオブジェクトを返します。

var object = { 'a'1, 'b''2', 'c'3 };
 
_.pick(object, ['a', 'c']);
// => { 'a': 1, 'c': 3 }

_.pickBy(object, [predicate=_.identity])

ソース npm パッケージ

predicate が真理値を返す object プロパティで構成されるオブジェクトを作成します。述語は 2 つの引数 ((value, key)) で呼び出されます。

Since

4.0.0

引数

  1. object (オブジェクト): ソースオブジェクト。
  2. [predicate=_.identity] (関数): プロパティごとに呼び出される関数。

戻り値

(Object): 新しいオブジェクトを返します。

var object = { 'a'1, 'b''2', 'c'3 };
 
_.pickBy(object, _.isNumber);
// => { 'a': 1, 'c': 3 }

_.result(object, path, [defaultValue])

ソース npm パッケージ

このメソッドは _.get と似ていますが、解決された値が関数の場合、親オブジェクトの this バインディングで呼び出され、その結果が返される点が異なります。

Since

0.1.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。
  2. path (配列|文字列): 解決するプロパティのパス。
  3. [defaultValue] (*): 解決された値が undefined の場合に返される値。

戻り値

(*): 解決された値を返します。

var object = { 'a': [{ 'b': { 'c1'3, 'c2': _.constant(4) } }] };
 
_.result(object, 'a[0].b.c1');
// => 3
 
_.result(object, 'a[0].b.c2');
// => 4
 
_.result(object, 'a[0].b.c3', 'default');
// => 'default'
 
_.result(object, 'a[0].b.c3', _.constant('default'));
// => 'default'

_.set(object, path, value)

ソース npm パッケージ

objectpath に値を設定します。path の一部が存在しない場合は作成されます。配列は不足しているインデックスプロパティに対して作成され、オブジェクトはその他のすべての不足しているプロパティに対して作成されます。path の作成をカスタマイズするには _.setWith を使用してください。

注意: このメソッドは object を変更します。

Since

3.7.0

引数

  1. object (オブジェクト): 変更するオブジェクト。
  2. path (配列|文字列): 設定するプロパティのパス。
  3. value (*): 設定する値。

戻り値

(Object): object を返します。

var object = { 'a': [{ 'b': { 'c'3 } }] };
 
_.set(object, 'a[0].b.c', 4);
console.log(object.a[0].b.c);
// => 4
 
_.set(object, ['x', '0', 'y', 'z'], 5);
console.log(object.x[0].y.z);
// => 5

_.setWith(object, path, value, [customizer])

ソース npm パッケージ

このメソッドは _.set と似ていますが、path のオブジェクトを生成するために呼び出される customizer を受け入れる点が異なります。customizerundefined を返す場合、代わりにメソッドによってパスの作成が処理されます。customizer は 3 つの引数 ((nsValue, key, nsObject)) で呼び出されます。

注意: このメソッドは object を変更します。

Since

4.0.0

引数

  1. object (オブジェクト): 変更するオブジェクト。
  2. path (配列|文字列): 設定するプロパティのパス。
  3. value (*): 設定する値。
  4. [customizer] (Function): 割り当てられた値をカスタマイズする関数。

戻り値

(Object): object を返します。

var object = {};
 
_.setWith(object, '[0][1]', 'a', Object);
// => { '0': { '1': 'a' } }

_.toPairs(object)

ソース npm パッケージ

_.fromPairs で使用できる、object の列挙可能な独自の文字列キーと値のペアの配列を作成します。object がマップまたはセットの場合、そのエントリが返されます。

Since

4.0.0

エイリアス

_.entries

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。

戻り値

(配列): キーと値のペアを返します。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.toPairs(new Foo);
// => [['a', 1], ['b', 2]] (iteration order is not guaranteed)

_.toPairsIn(object)

ソース npm パッケージ

_.fromPairs で使用できる、object の列挙可能な独自の文字列キーと値のペアと継承されたペアの配列を作成します。object がマップまたはセットの場合、そのエントリが返されます。

Since

4.0.0

エイリアス

_.entriesIn

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。

戻り値

(配列): キーと値のペアを返します。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.toPairsIn(new Foo);
// => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)

_.transform(object, [iteratee=_.identity], [accumulator])

ソース npm パッケージ

_.reduce の代替手段です。このメソッドは、object を新しい accumulator オブジェクトに変換します。これは、列挙可能な独自の文字列キー付きプロパティをそれぞれ iteratee を介して実行した結果で、各呼び出しは accumulator オブジェクトを変化させる可能性があります。accumulator が提供されない場合、同じ [[Prototype]] を持つ新しいオブジェクトが使用されます。イテレータは 4 つの引数 ((accumulator, value, key, object)) で呼び出されます。イテレータ関数は、false を明示的に返すことで、早期に反復処理を終了できます。

Since

1.3.0

引数

  1. object (Object): 反復処理するオブジェクト。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。
  3. [accumulator] (*): カスタムアキュムレータ値。

戻り値

(*): 累積された値を返します。

_.transform([2, 3, 4], function(result, n) {
  result.push(n *= n);
  return n % 2 == 0;
}, []);
// => [4, 9]
 
_.transform({ 'a'1, 'b'2, 'c'1 }, function(result, value, key) {
  (result[value] || (result[value] = [])).push(key);
}, {});
// => { '1': ['a', 'c'], '2': ['b'] }

_.unset(object, path)

ソース npm パッケージ

objectpath にあるプロパティを削除します。

注意: このメソッドは object を変更します。

Since

4.0.0

引数

  1. object (オブジェクト): 変更するオブジェクト。
  2. path (Array|string): 削除するプロパティのパス。

戻り値

(boolean): プロパティが削除された場合は true、それ以外の場合は false を返します。

var object = { 'a': [{ 'b': { 'c'7 } }] };
_.unset(object, 'a[0].b.c');
// => true
 
console.log(object);
// => { 'a': [{ 'b': {} }] };
 
_.unset(object, ['a', '0', 'b', 'c']);
// => true
 
console.log(object);
// => { 'a': [{ 'b': {} }] };

_.update(object, path, updater)

ソース npm パッケージ

このメソッドは、設定する値を生成するために updater を受け入れる点を除いて _.set と似ています。path の作成をカスタマイズするには _.updateWith を使用します。updater は1つの引数で呼び出されます: (value)

注意: このメソッドは object を変更します。

Since

4.6.0

引数

  1. object (オブジェクト): 変更するオブジェクト。
  2. path (配列|文字列): 設定するプロパティのパス。
  3. updater (Function): 更新された値を生成する関数。

戻り値

(Object): object を返します。

var object = { 'a': [{ 'b': { 'c'3 } }] };
 
_.update(object, 'a[0].b.c', function(n) { return n * n; });
console.log(object.a[0].b.c);
// => 9
 
_.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });
console.log(object.x[0].y.z);
// => 0

_.updateWith(object, path, updater, [customizer])

ソース npm パッケージ

このメソッドは、path のオブジェクトを生成するために呼び出される customizer を受け入れる点を除いて _.update と似ています。customizerundefined を返す場合、パスの作成はメソッドによって処理されます。customizer は3つの引数で呼び出されます: (nsValue, key, nsObject)

注意: このメソッドは object を変更します。

Since

4.6.0

引数

  1. object (オブジェクト): 変更するオブジェクト。
  2. path (配列|文字列): 設定するプロパティのパス。
  3. updater (Function): 更新された値を生成する関数。
  4. [customizer] (Function): 割り当てられた値をカスタマイズする関数。

戻り値

(Object): object を返します。

var object = {};
 
_.updateWith(object, '[0][1]', _.constant('a'), Object);
// => { '0': { '1': 'a' } }

_.values(object)

ソース npm パッケージ

object の自身の列挙可能な文字列キープロパティの値の配列を作成します。

注: オブジェクト以外の値はオブジェクトに強制変換されます。

Since

0.1.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。

戻り値

(Array): プロパティ値の配列を返します。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.values(new Foo);
// => [1, 2] (iteration order is not guaranteed)
 
_.values('hi');
// => ['h', 'i']

_.valuesIn(object)

ソース npm パッケージ

object の自身と継承された列挙可能な文字列キープロパティの値の配列を作成します。

注: オブジェクト以外の値はオブジェクトに強制変換されます。

Since

3.0.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。

戻り値

(Array): プロパティ値の配列を返します。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.valuesIn(new Foo);
// => [1, 2, 3] (iteration order is not guaranteed)

“Seq” メソッド

_(value)

ソース

暗黙的なメソッドチェーンシーケンスを可能にするために value をラップする lodash オブジェクトを作成します。配列、コレクション、および関数を操作して返すメソッドは、チェーン化できます。単一の値を取得するか、プリミティブ値を返す可能性のあるメソッドは、自動的にチェーンシーケンスを終了し、ラップされていない値を返します。それ以外の場合、値は _#value でラップ解除する必要があります。

_#value でラップ解除する必要がある明示的なチェーンシーケンスは、_.chain を使用して有効にできます。

チェーン化されたメソッドの実行は遅延されます。つまり、_#value が暗黙的または明示的に呼び出されるまで延期されます。

遅延評価により、いくつかのメソッドがショートカットフュージョンをサポートできます。ショートカットフュージョンは、イテレータ呼び出しをマージする最適化です。これにより、中間配列の作成が回避され、イテレータの実行回数を大幅に削減できます。チェーンシーケンスのセクションが配列に適用され、イテレータが1つの引数のみを受け入れる場合、そのセクションはショートカットフュージョンの対象となります。セクションがショートカットフュージョンの対象となるかどうかのヒューリスティックは変更される可能性があります。

_#value メソッドがビルドに直接的または間接的に含まれている限り、カスタムビルドでチェーン化がサポートされます。

lodash メソッドに加えて、ラッパーには Array および String メソッドがあります。

ラッパーの Array メソッドは
concatjoinpoppushshiftsortsplice、および unshift

ラッパーの String メソッドは
replace および split

ショートカットフュージョンをサポートするラッパーメソッドは
atcompactdropdropRightdropWhilefilterfindfindLastheadinitiallastmaprejectreverseslicetailtaketakeRighttakeRightWhiletakeWhile、および toArray

チェーン可能なラッパーメソッドは
afteraryassignassignInassignInWithassignWithatbeforebindbindAllbindKeycastArraychainchunkcommitcompactconcatconformsconstantcountBycreatecurrydebouncedefaultsdefaultsDeepdeferdelaydifferencedifferenceBydifferenceWithdropdropRightdropRightWhiledropWhileextendextendWithfillfilterflatMapflatMapDeepflatMapDepthflattenflattenDeepflattenDepthflipflowflowRightfromPairsfunctionsfunctionsIngroupByinitialintersectionintersectionByintersectionWithinvertinvertByinvokeMapiterateekeyBykeyskeysInmapmapKeysmapValuesmatchesmatchesPropertymemoizemergemergeWithmethodmethodOfmixinnegatenthArgomitomitByonceorderByoveroverArgsoverEveryoverSomepartialpartialRightpartitionpickpickByplantpropertypropertyOfpullpullAllpullAllBypullAllWithpullAtpushrangerangeRightreargrejectremoverestreversesampleSizesetsetWithshuffleslicesortsortBysplicespreadtailtaketakeRighttakeRightWhiletakeWhiletapthrottlethrutoArraytoPairstoPairsIntoPathtoPlainObjecttransformunaryunionunionByunionWithuniquniqByuniqWithunsetunshiftunzipunzipWithupdateupdateWithvaluesvaluesInwithoutwrapxorxorByxorWithzipzipObjectzipObjectDeep、および zipWith

デフォルトでチェーン化されないラッパーメソッドは
addattemptcamelCasecapitalizeceilclampclonecloneDeepcloneDeepWithcloneWithconformsTodeburrdefaultTodivideeacheachRightendsWitheqescapeescapeRegExpeveryfindfindIndexfindKeyfindLastfindLastIndexfindLastKeyfirstfloorforEachforEachRightforInforInRightforOwnforOwnRightgetgtgtehashasInheadidentityincludesindexOfinRangeinvokeisArgumentsisArrayisArrayBufferisArrayLikeisArrayLikeObjectisBooleanisBufferisDateisElementisEmptyisEqualisEqualWithisErrorisFiniteisFunctionisIntegerisLengthisMapisMatchisMatchWithisNaNisNativeisNilisNullisNumberisObjectisObjectLikeisPlainObjectisRegExpisSafeIntegerisSetisStringisUndefinedisTypedArrayisWeakMapisWeakSetjoinkebabCaselastlastIndexOflowerCaselowerFirstltltemaxmaxBymeanmeanByminminBymultiplynoConflictnoopnownthpadpadEndpadStartparseIntpoprandomreducereduceRightrepeatresultroundrunInContextsampleshiftsizesnakeCasesomesortedIndexsortedIndexBysortedLastIndexsortedLastIndexBystartCasestartsWithstubArraystubFalsestubObjectstubStringstubTruesubtractsumsumBytemplatetimestoFinitetoIntegertoJSONtoLengthtoLowertoNumbertoSafeIntegertoStringtoUppertrimtrimEndtrimStarttruncateunescapeuniqueIdupperCaseupperFirstvalue、および words

引数

  1. value (*): lodash インスタンスでラップする値。

戻り値

(Object): 新しい lodash ラッパーインスタンスを返します。

function square(n) {
  return n * n;
}
 
var wrapped = _([1, 2, 3]);
 
// Returns an unwrapped value.
wrapped.reduce(_.add);
// => 6
 
// Returns a wrapped value.
var squares = wrapped.map(square);
 
_.isArray(squares);
// => false
 
_.isArray(squares.value());
// => true

_.chain(value)

ソース

明示的なメソッドチェーンシーケンスを有効にして value をラップする lodash ラッパーインスタンスを作成します。このようなシーケンスの結果は、_#value でラップ解除する必要があります。

Since

1.3.0

引数

  1. value (*): ラップする値。

戻り値

(Object): 新しい lodash ラッパーインスタンスを返します。

var users = [
  { 'user''barney',  'age'36 },
  { 'user''fred',    'age'40 },
  { 'user''pebbles', 'age'1 }
];
 
var youngest = _
  .chain(users)
  .sortBy('age')
  .map(function(o) {
    return o.user + ' is ' + o.age;
  })
  .head()
  .value();
// => 'pebbles is 1'

_.tap(value, interceptor)

ソース

このメソッドは interceptor を呼び出し、value を返します。インターセプターは1つの引数で呼び出されます。(value)。このメソッドの目的は、中間結果を変更するためにメソッドチェーンシーケンスに「タップイン」することです。

Since

0.1.0

引数

  1. value (*): interceptor に提供する値。
  2. interceptor (Function): 呼び出す関数。

戻り値

(*): value を返します。

_([1, 2, 3])
 .tap(function(array) {
// Mutate input array.
   array.pop();
 })
 .reverse()
 .value();
// => [2, 1]

_.thru(value, interceptor)

ソース

このメソッドは _.tap と似ていますが、interceptor の結果を返します。このメソッドの目的は、メソッドチェーンシーケンスの中間結果を置き換える値を「パススルー」することです。

Since

3.0.0

引数

  1. value (*): interceptor に提供する値。
  2. interceptor (Function): 呼び出す関数。

戻り値

(*): interceptor の結果を返します。

_('  abc  ')
 .chain()
 .trim()
 .thru(function(value) {
   return [value];
 })
 .value();
// => ['abc']

_.prototype[Symbol.iterator]()

ソース

ラッパーをイテラブルにすることを有効にします。

Since

4.0.0

戻り値

(Object): ラッパーオブジェクトを返します。

var wrapped = _([1, 2]);
 
wrapped[Symbol.iterator]() === wrapped;
// => true
 
Array.from(wrapped);
// => [1, 2]

_.prototype.at([paths])

ソース

このメソッドは、_.at のラッパーバージョンです。

Since

1.0.0

引数

  1. [paths] (...(string|string[])): ピックするプロパティパス。

戻り値

(Object): 新しい lodash ラッパーインスタンスを返します。

var object = { 'a': [{ 'b': { 'c'3 } }, 4] };
 
_(object).at(['a[0].b.c', 'a[1]']).value();
// => [3, 4]

_.prototype.chain()

ソース

明示的なメソッドチェーンシーケンスが有効になっている lodash ラッパーインスタンスを作成します。

Since

0.1.0

戻り値

(Object): 新しい lodash ラッパーインスタンスを返します。

var users = [
  { 'user''barney', 'age'36 },
  { 'user''fred',   'age'40 }
];
 
// A sequence without explicit chaining.
_(users).head();
// => { 'user': 'barney', 'age': 36 }
 
// A sequence with explicit chaining.
_(users)
  .chain()
  .head()
  .pick('user')
  .value();
// => { 'user': 'barney' }

_.prototype.commit()

ソース

チェーンシーケンスを実行し、ラップされた結果を返します。

Since

3.2.0

戻り値

(Object): 新しい lodash ラッパーインスタンスを返します。

var array = [1, 2];
var wrapped = _(array).push(3);
 
console.log(array);
// => [1, 2]
 
wrapped = wrapped.commit();
console.log(array);
// => [1, 2, 3]
 
wrapped.last();
// => 3
 
console.log(array);
// => [1, 2, 3]

_.prototype.next()

ソース

イテレータープロトコルに従って、ラップされたオブジェクトの次の値を取得します。

Since

4.0.0

戻り値

(Object): 次のイテレーター値を返します。

var wrapped = _([1, 2]);
 
wrapped.next();
// => { 'done': false, 'value': 1 }
 
wrapped.next();
// => { 'done': false, 'value': 2 }
 
wrapped.next();
// => { 'done': true, 'value': undefined }

_.prototype.plant(value)

ソース

チェーンシーケンスのクローンを作成し、value をラップされた値として配置します。

Since

3.2.0

引数

  1. value (*): 配置する値。

戻り値

(Object): 新しい lodash ラッパーインスタンスを返します。

function square(n) {
  return n * n;
}
 
var wrapped = _([1, 2]).map(square);
var other = wrapped.plant([3, 4]);
 
other.value();
// => [9, 16]
 
wrapped.value();
// => [1, 4]

_.prototype.reverse()

ソース

このメソッドは _.reverse のラッパーバージョンです。

注: このメソッドはラップされた配列を変更します。

Since

0.1.0

戻り値

(Object): 新しい lodash ラッパーインスタンスを返します。

var array = [1, 2, 3];
 
_(array).reverse().value()
// => [3, 2, 1]
 
console.log(array);
// => [3, 2, 1]

_.prototype.value()

ソース

チェーンシーケンスを実行して、ラップ解除された値を解決します。

Since

0.1.0

エイリアス

_.prototype.toJSON, _.prototype.valueOf

戻り値

(*): 解決されたラップ解除された値を返します。

_([1, 2, 3]).value();
// => [1, 2, 3]

“String” メソッド

_.camelCase([string=''])

ソース npm パッケージ

stringキャメルケースに変換します。

Since

3.0.0

引数

  1. [string=''] (string): 変換する文字列。

戻り値

(string): キャメルケースに変換された文字列を返します。

_.camelCase('Foo Bar');
// => 'fooBar'
 
_.camelCase('--foo-bar--');
// => 'fooBar'
 
_.camelCase('__FOO_BAR__');
// => 'fooBar'

_.capitalize([string=''])

ソース npm パッケージ

string の最初の文字を大文字に、残りの文字を小文字に変換します。

Since

3.0.0

引数

  1. [string=''] (string): 大文字にする文字列。

戻り値

(string): 大文字に変換された文字列を返します。

_.capitalize('FRED');
// => 'Fred'

_.deburr([string=''])

ソース npm パッケージ

string から、Latin-1 Supplement および Latin Extended-A の文字を基本的なラテン文字に変換し、結合分音記号を削除することにより、string を除去します。

Since

3.0.0

引数

  1. [string=''] (string): デバーする文字列。

戻り値

(string): デバーされた文字列を返します。

_.deburr('déjà vu');
// => 'deja vu'

_.endsWith([string=''], [target], [position=string.length])

ソース npm パッケージ

string が指定されたターゲット文字列で終わるかどうかを確認します。

Since

3.0.0

引数

  1. [string=''] (string): 検査する文字列。
  2. [target] (string): 検索する文字列。
  3. [position=string.length] (number): 検索する位置。

戻り値

(boolean): stringtarget で終わる場合は true、そうでない場合は false を返します。

_.endsWith('abc', 'c');
// => true
 
_.endsWith('abc', 'b');
// => false
 
_.endsWith('abc', 'b', 2);
// => true

_.escape([string=''])

ソース npm パッケージ

string 内の文字 "&", "<", ">", '"', および "'" を、対応する HTML エンティティに変換します。

注: 他の文字はエスケープされません。追加の文字をエスケープするには、he のようなサードパーティライブラリを使用してください。

">" 文字は対称性のためにエスケープされますが、">" や "/" のような文字はHTMLではエスケープする必要はなく、タグや引用符で囲まれていない属性値の一部でない限り特別な意味を持ちません。詳しくは、Mathias Bynens の記事 (「半関連の豆知識」の下) を参照してください。

HTML を扱う場合は、XSS ベクトルを減らすために、常に属性値を引用符で囲む必要があります。

Since

0.1.0

引数

  1. [string=''] (string): エスケープする文字列。

戻り値

(string): エスケープされた文字列を返します。

_.escape('fred, barney, & pebbles');
// => 'fred, barney, &amp; pebbles'

_.escapeRegExp([string=''])

ソース npm パッケージ

string 内の RegExp の特殊文字 "^", "$", "", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", および "|" をエスケープします。

Since

3.0.0

引数

  1. [string=''] (string): エスケープする文字列。

戻り値

(string): エスケープされた文字列を返します。

_.escapeRegExp('[lodash](https://lodash.dokyumento.jp/)');
// => '\[lodash\]\(https://lodash\.com/\)'

_.kebabCase([string=''])

ソース npm パッケージ

stringケバブケースに変換します。

Since

3.0.0

引数

  1. [string=''] (string): 変換する文字列。

戻り値

(string): ケバブケースに変換された文字列を返します。

_.kebabCase('Foo Bar');
// => 'foo-bar'
 
_.kebabCase('fooBar');
// => 'foo-bar'
 
_.kebabCase('__FOO_BAR__');
// => 'foo-bar'

_.lowerCase([string=''])

ソース npm パッケージ

スペースで区切られた単語として、string を小文字に変換します。

Since

4.0.0

引数

  1. [string=''] (string): 変換する文字列。

戻り値

(string): 小文字に変換された文字列を返します。

_.lowerCase('--Foo-Bar--');
// => 'foo bar'
 
_.lowerCase('fooBar');
// => 'foo bar'
 
_.lowerCase('__FOO_BAR__');
// => 'foo bar'

_.lowerFirst([string=''])

ソース npm パッケージ

string の最初の文字を小文字に変換します。

Since

4.0.0

引数

  1. [string=''] (string): 変換する文字列。

戻り値

(string): 変換された文字列を返します。

_.lowerFirst('Fred');
// => 'fred'
 
_.lowerFirst('FRED');
// => 'fRED'

_.pad([string=''], [length=0], [chars=' '])

ソース npm パッケージ

stringlength よりも短い場合、左側と右側にパディングします。パディング文字は length で均等に分割できない場合は切り捨てられます。

Since

3.0.0

引数

  1. [string=''] (string): パディングする文字列。
  2. [length=0] (number): パディングの長さ。
  3. [chars=' '] (string): パディングとして使用される文字列。

戻り値

(string): パディングされた文字列を返します。

_.pad('abc', 8);
// => '  abc   '
 
_.pad('abc', 8, '_-');
// => '_-abc_-_'
 
_.pad('abc', 3);
// => 'abc'

_.padEnd([string=''], [length=0], [chars=' '])

ソース npm パッケージ

stringlength よりも短い場合、右側にパディングします。パディング文字は length を超える場合は切り捨てられます。

Since

4.0.0

引数

  1. [string=''] (string): パディングする文字列。
  2. [length=0] (number): パディングの長さ。
  3. [chars=' '] (string): パディングとして使用される文字列。

戻り値

(string): パディングされた文字列を返します。

_.padEnd('abc', 6);
// => 'abc   '
 
_.padEnd('abc', 6, '_-');
// => 'abc_-_'
 
_.padEnd('abc', 3);
// => 'abc'

_.padStart([string=''], [length=0], [chars=' '])

ソース npm パッケージ

stringlength よりも短い場合、左側にパディングします。パディング文字は length を超える場合は切り捨てられます。

Since

4.0.0

引数

  1. [string=''] (string): パディングする文字列。
  2. [length=0] (number): パディングの長さ。
  3. [chars=' '] (string): パディングとして使用される文字列。

戻り値

(string): パディングされた文字列を返します。

_.padStart('abc', 6);
// => '   abc'
 
_.padStart('abc', 6, '_-');
// => '_-_abc'
 
_.padStart('abc', 3);
// => 'abc'

_.parseInt(string, [radix=10])

ソース npm パッケージ

string を指定された基数の整数に変換します。radixundefined または 0 の場合、value が16進数でない限り、基数 10 が使用されます。その場合は基数 16 が使用されます。

注: このメソッドは parseIntES5 実装に準拠しています。

Since

1.1.0

引数

  1. string (string): 変換する文字列。
  2. [radix=10] (number): value を解釈する基数。

戻り値

(number): 変換された整数を返します。

_.parseInt('08');
// => 8
 
_.map(['6', '08', '10'], _.parseInt);
// => [6, 8, 10]

_.repeat([string=''], [n=1])

ソース npm パッケージ

指定された文字列を n 回繰り返します。

Since

3.0.0

引数

  1. [string=''] (string): 繰り返す文字列。
  2. [n=1] (number): 文字列を繰り返す回数。

戻り値

(string): 繰り返された文字列を返します。

_.repeat('*', 3);
// => '***'
 
_.repeat('abc', 2);
// => 'abcabc'
 
_.repeat('abc', 0);
// => ''

_.replace([string=''], pattern, replacement)

ソース npm パッケージ

string 内の pattern に一致するものを replacement に置き換えます。

注: このメソッドは String#replace に基づいています。

Since

4.0.0

引数

  1. [string=''] (string): 変更する文字列。
  2. pattern (RegExp|string): 置き換えるパターン。
  3. replacement (Function|string): マッチの置換。

戻り値

(string): 変更された文字列を返します。

_.replace('Hi Fred', 'Fred', 'Barney');
// => 'Hi Barney'

_.snakeCase([string=''])

ソース npm パッケージ

stringスネークケースに変換します。

Since

3.0.0

引数

  1. [string=''] (string): 変換する文字列。

戻り値

(string): スネークケースに変換された文字列を返します。

_.snakeCase('Foo Bar');
// => 'foo_bar'
 
_.snakeCase('fooBar');
// => 'foo_bar'
 
_.snakeCase('--FOO-BAR--');
// => 'foo_bar'

_.split([string=''], separator, [limit])

ソース npm パッケージ

stringseparator で分割します。

注: このメソッドは String#split に基づいています。

Since

4.0.0

引数

  1. [string=''] (string): 分割する文字列。
  2. separator (RegExp|string): 分割するためのセパレータパターン。
  3. [limit] (number): 結果を切り詰める長さ。

戻り値

(Array): 文字列のセグメントを返します。

_.split('a-b-c', '-', 2);
// => ['a', 'b']

_.startCase([string=''])

ソース npm パッケージ

stringスタートケースに変換します。

Since

3.1.0

引数

  1. [string=''] (string): 変換する文字列。

戻り値

(string): スタートケースに変換された文字列を返します。

_.startCase('--foo-bar--');
// => 'Foo Bar'
 
_.startCase('fooBar');
// => 'Foo Bar'
 
_.startCase('__FOO_BAR__');
// => 'FOO BAR'

_.startsWith([string=''], [target], [position=0])

ソース npm パッケージ

string が指定されたターゲット文字列で始まるかどうかを確認します。

Since

3.0.0

引数

  1. [string=''] (string): 検査する文字列。
  2. [target] (string): 検索する文字列。
  3. [position=0] (number): 検索を開始する位置。

戻り値

(boolean): stringtarget で始まる場合は true、そうでない場合は false を返します。

_.startsWith('abc', 'a');
// => true
 
_.startsWith('abc', 'b');
// => false
 
_.startsWith('abc', 'b', 1);
// => true

_.template([string=''], [options={}])

ソース npm パッケージ

"interpolate" デリミターでデータプロパティを補間し、"escape" デリミターで HTML エスケープされたデータプロパティを補間し、"evaluate" デリミターで JavaScript を実行できるコンパイル済みテンプレート関数を作成します。データプロパティは、テンプレート内でフリー変数としてアクセスできます。設定オブジェクトが指定されている場合、_.templateSettings の値よりも優先されます。

注: 開発ビルドでは、_.template はデバッグを容易にするためにsourceURLsを利用しています。

テンプレートの事前コンパイルの詳細については、lodash のカスタムビルドのドキュメントを参照してください。

Chrome 拡張機能サンドボックスの詳細については、Chrome の拡張機能ドキュメントを参照してください。

Since

0.1.0

引数

  1. [string=''] (string): テンプレート文字列。
  2. [options={}] (Object): オプションオブジェクト。
  3. [options.escape=_.templateSettings.escape] (RegExp): HTML "escape" デリミター。
  4. [options.evaluate=_.templateSettings.evaluate] (RegExp): "evaluate" デリミター。
  5. [options.imports=_.templateSettings.imports] (Object): フリー変数としてテンプレートにインポートするオブジェクト。
  6. [options.interpolate=_.templateSettings.interpolate] (RegExp): "interpolate" デリミター。
  7. [options.sourceURL='lodash.templateSources[n]'] (string): コンパイル済みテンプレートの sourceURL。
  8. [options.variable='obj'] (string): データオブジェクトの変数名。

戻り値

(Function): コンパイルされたテンプレート関数を返します。

// Use the "interpolate" delimiter to create a compiled template.
var compiled = _.template('hello <%= user %>!');
compiled({ 'user''fred' });
// => 'hello fred!'
 
// Use the HTML "escape" delimiter to escape data property values.
var compiled = _.template('<b><%- value %></b>');
compiled({ 'value''<script>' });
// => '<b>&lt;script&gt;</b>'
 
// Use the "evaluate" delimiter to execute JavaScript and generate HTML.
var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');
compiled({ 'users': ['fred', 'barney'] });
// => '<li>fred</li><li>barney</li>'
 
// Use the internal `print` function in "evaluate" delimiters.
var compiled = _.template('<% print("hello " + user); %>!');
compiled({ 'user''barney' });
// => 'hello barney!'
 
// Use the ES template literal delimiter as an "interpolate" delimiter.
// Disable support by replacing the "interpolate" delimiter.
var compiled = _.template('hello ${ user }!');
compiled({ 'user''pebbles' });
// => 'hello pebbles!'
 
// Use backslashes to treat delimiters as plain text.
var compiled = _.template('<%= "\\<%- value %\\>" %>');
compiled({ 'value''ignored' });
// => '<%- value %>'
 
// Use the `imports` option to import `jQuery` as `jq`.
var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';
var compiled = _.template(text, { 'imports': { 'jq': jQuery } });
compiled({ 'users': ['fred', 'barney'] });
// => '<li>fred</li><li>barney</li>'
 
// Use the `sourceURL` option to specify a custom sourceURL for the template.
var compiled = _.template('hello <%= user %>!', { 'sourceURL''/basic/greeting.jst' });
compiled(data);
// => Find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector.
 
// Use the `variable` option to ensure a with-statement isn't used in the compiled template.
var compiled = _.template('hi <%= data.user %>!', { 'variable''data' });
compiled.source;
// => function(data) {
//   var __t, __p = '';
//   __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
//   return __p;
// }
 
// Use custom template delimiters.
_.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
var compiled = _.template('hello {{ user }}!');
compiled({ 'user''mustache' });
// => 'hello mustache!'
 
// Use the `source` property to inline compiled templates for meaningful
// line numbers in error messages and stack traces.
fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\
  var JST = {\
    "main": ' + _.template(mainText).source + '\
  };\
');

_.toLower([string=''])

ソース npm パッケージ

String#toLowerCase と同様に、string 全体を小文字に変換します。

Since

4.0.0

引数

  1. [string=''] (string): 変換する文字列。

戻り値

(string): 小文字に変換された文字列を返します。

_.toLower('--Foo-Bar--');
// => '--foo-bar--'
 
_.toLower('fooBar');
// => 'foobar'
 
_.toLower('__FOO_BAR__');
// => '__foo_bar__'

_.toUpper([string=''])

ソース npm パッケージ

String#toUpperCase と同様に、string 全体を大文字に変換します。

Since

4.0.0

引数

  1. [string=''] (string): 変換する文字列。

戻り値

(string): 大文字に変換された文字列を返します。

_.toUpper('--foo-bar--');
// => '--FOO-BAR--'
 
_.toUpper('fooBar');
// => 'FOOBAR'
 
_.toUpper('__foo_bar__');
// => '__FOO_BAR__'

_.trim([string=''], [chars=whitespace])

ソース npm パッケージ

先頭と末尾の空白、または指定された文字を string から削除します。

Since

3.0.0

引数

  1. [string=''] (string): トリムする文字列。
  2. [chars=whitespace] (string): トリムする文字。

戻り値

(string): トリムされた文字列を返します。

_.trim('  abc  ');
// => 'abc'
 
_.trim('-_-abc-_-', '_-');
// => 'abc'
 
_.map(['  foo  ', '  bar  '], _.trim);
// => ['foo', 'bar']

_.trimEnd([string=''], [chars=whitespace])

ソース npm パッケージ

末尾の空白、または指定された文字を string から削除します。

Since

4.0.0

引数

  1. [string=''] (string): トリムする文字列。
  2. [chars=whitespace] (string): トリムする文字。

戻り値

(string): トリムされた文字列を返します。

_.trimEnd('  abc  ');
// => '  abc'
 
_.trimEnd('-_-abc-_-', '_-');
// => '-_-abc'

_.trimStart([string=''], [chars=whitespace])

ソース npm パッケージ

先頭の空白、または指定された文字を string から削除します。

Since

4.0.0

引数

  1. [string=''] (string): トリムする文字列。
  2. [chars=whitespace] (string): トリムする文字。

戻り値

(string): トリムされた文字列を返します。

_.trimStart('  abc  ');
// => 'abc  '
 
_.trimStart('-_-abc-_-', '_-');
// => 'abc-_-'

_.truncate([string=''], [options={}])

ソース npm パッケージ

string が指定された最大文字列長よりも長い場合は切り詰めます。切り詰められた文字列の最後の文字は、省略文字列 (デフォルトは "...") に置き換えられます。

Since

4.0.0

引数

  1. [string=''] (文字列): 切り詰める文字列。
  2. [options={}] (Object): オプションオブジェクト。
  3. [options.length=30] (数値): 文字列の最大長。
  4. [options.omission='...'] (文字列): テキストが省略されていることを示す文字列。
  5. [options.separator] (RegExp|文字列): 切り詰める区切りパターン。

戻り値

(文字列): 切り詰められた文字列を返します。

_.truncate('hi-diddly-ho there, neighborino');
// => 'hi-diddly-ho there, neighbo...'
 
_.truncate('hi-diddly-ho there, neighborino', {
  'length'24,
  'separator'' '
});
// => 'hi-diddly-ho there,...'
 
_.truncate('hi-diddly-ho there, neighborino', {
  'length'24,
  'separator': /,? +/
});
// => 'hi-diddly-ho there...'
 
_.truncate('hi-diddly-ho there, neighborino', {
  'omission'' [...]'
});
// => 'hi-diddly-ho there, neig [...]'

_.unescape([string=''])

ソース npm パッケージ

_.escape の逆。このメソッドは、string 内の HTML エンティティ &amp;&lt;&gt;&quot;、および &#39; を、対応する文字に変換します。

注意: 他の HTML エンティティはアンエスケープされません。追加の HTML エンティティをアンエスケープするには、he のようなサードパーティライブラリを使用してください。

Since

0.6.0

引数

  1. [string=''] (文字列): アンエスケープする文字列。

戻り値

(文字列): アンエスケープされた文字列を返します。

_.unescape('fred, barney, &amp; pebbles');
// => 'fred, barney, & pebbles'

_.upperCase([string=''])

ソース npm パッケージ

string をスペースで区切られた単語として、大文字に変換します。

Since

4.0.0

引数

  1. [string=''] (string): 変換する文字列。

戻り値

(string): 大文字に変換された文字列を返します。

_.upperCase('--foo-bar');
// => 'FOO BAR'
 
_.upperCase('fooBar');
// => 'FOO BAR'
 
_.upperCase('__foo_bar__');
// => 'FOO BAR'

_.upperFirst([string=''])

ソース npm パッケージ

string の最初の文字を大文字に変換します。

Since

4.0.0

引数

  1. [string=''] (string): 変換する文字列。

戻り値

(string): 変換された文字列を返します。

_.upperFirst('fred');
// => 'Fred'
 
_.upperFirst('FRED');
// => 'FRED'

_.words([string=''], [pattern])

ソース npm パッケージ

string を単語の配列に分割します。

Since

3.0.0

引数

  1. [string=''] (string): 検査する文字列。
  2. [pattern] (RegExp|文字列): 単語を一致させるパターン。

戻り値

(配列): string の単語を返します。

_.words('fred, barney, & pebbles');
// => ['fred', 'barney', 'pebbles']
 
_.words('fred, barney, & pebbles', /[^, ]+/g);
// => ['fred', 'barney', '&', 'pebbles']

「ユーティリティ」メソッド

_.attempt(func, [args])

ソース npm パッケージ

func の呼び出しを試み、結果またはキャッチされたエラーオブジェクトを返します。追加の引数は、func が呼び出されるときに提供されます。

Since

3.0.0

引数

  1. func (関数): 試行する関数。
  2. [args] (...*): func を呼び出す際の引数。

戻り値

(*): func の結果またはエラーオブジェクトを返します。

// Avoid throwing errors for invalid selectors.
var elements = _.attempt(function(selector) {
  return document.querySelectorAll(selector);
}, '>_>');
 
if (_.isError(elements)) {
  elements = [];
}

_.bindAll(object, methodNames)

ソース npm パッケージ

オブジェクトのメソッドをオブジェクト自体にバインドし、既存のメソッドを上書きします。

注意: このメソッドは、バインドされた関数の「length」プロパティを設定しません。

Since

0.1.0

引数

  1. object (オブジェクト): バインドし、バインドされたメソッドを割り当てるオブジェクト。
  2. methodNames (...(文字列|文字列[])): バインドするオブジェクトメソッドの名前。

戻り値

(Object): object を返します。

var view = {
  'label''docs',
  'click'function() {
    console.log('clicked ' + this.label);
  }
};
 
_.bindAll(view, ['click']);
jQuery(element).on('click', view.click);
// => Logs 'clicked docs' when clicked.

_.cond(pairs)

ソース npm パッケージ

pairs を反復処理し、真を返す最初の述語の対応する関数を呼び出す関数を作成します。述語-関数ペアは、作成された関数の this バインディングと引数で呼び出されます。

Since

4.0.0

引数

  1. pairs (配列): 述語-関数ペア。

戻り値

(関数): 新しい合成関数を返します。

var func = _.cond([
  [_.matches({ 'a'1 }),           _.constant('matches A')],
  [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],
  [_.stubTrue,                      _.constant('no match')]
]);
 
func({ 'a'1, 'b'2 });
// => 'matches A'
 
func({ 'a'0, 'b'1 });
// => 'matches B'
 
func({ 'a''1', 'b''2' });
// => 'no match'

_.conforms(source)

ソース npm パッケージ

source の述語プロパティを、指定されたオブジェクトの対応するプロパティ値で呼び出し、すべての述語が真を返す場合は true を返し、それ以外の場合は false を返す関数を作成します。

注意: 作成された関数は、source が部分的に適用された _.conformsTo と同等です。

Since

4.0.0

引数

  1. source (Object): 準拠するプロパティ述語のオブジェクト。

戻り値

(関数): 新しいスペック関数を返します。

var objects = [
  { 'a'2, 'b'1 },
  { 'a'1, 'b'2 }
];
 
_.filter(objects, _.conforms({ 'b'function(n) { return n > 1; } }));
// => [{ 'a': 1, 'b': 2 }]

_.constant(value)

ソース npm パッケージ

value を返す関数を作成します。

Since

2.4.0

引数

  1. value (*): 新しい関数から返す値。

戻り値

(関数): 新しい定数関数を返します。

var objects = _.times(2, _.constant({ 'a'1 }));
 
console.log(objects);
// => [{ 'a': 1 }, { 'a': 1 }]
 
console.log(objects[0] === objects[1]);
// => true

_.defaultTo(value, defaultValue)

ソース npm パッケージ

value をチェックして、代わりにデフォルト値を返す必要があるかどうかを判断します。valueNaNnull、または undefined の場合は、defaultValue が返されます。

Since

4.14.0

引数

  1. value (*): チェックする値。
  2. defaultValue (*): デフォルト値。

戻り値

(*): 解決された値を返します。

_.defaultTo(1, 10);
// => 1
 
_.defaultTo(undefined, 10);
// => 10

_.flow([funcs])

ソース npm パッケージ

作成された関数の this バインディングを使用して、指定された関数を呼び出した結果を返す関数を作成します。各後続の呼び出しには、前の関数の戻り値が提供されます。

Since

3.0.0

引数

  1. [funcs] (...(関数|関数[])): 呼び出す関数。

戻り値

(関数): 新しい合成関数を返します。

function square(n) {
  return n * n;
}
 
var addSquare = _.flow([_.add, square]);
addSquare(1, 2);
// => 9

_.flowRight([funcs])

ソース npm パッケージ

このメソッドは、_.flow に似ていますが、指定された関数を右から左に呼び出す関数を作成するという点が異なります。

Since

3.0.0

引数

  1. [funcs] (...(関数|関数[])): 呼び出す関数。

戻り値

(関数): 新しい合成関数を返します。

function square(n) {
  return n * n;
}
 
var addSquare = _.flowRight([square, _.add]);
addSquare(1, 2);
// => 9

_.identity(value)

ソース npm パッケージ

このメソッドは、最初に受け取った引数を返します。

Since

0.1.0

引数

  1. value (*): 任意の値。

戻り値

(*): value を返します。

var object = { 'a'1 };
 
console.log(_.identity(object) === object);
// => true

_.iteratee([func=_.identity])

ソース npm パッケージ

作成された関数の引数で func を呼び出す関数を作成します。func がプロパティ名である場合、作成された関数は、指定された要素のプロパティ値を返します。func が配列またはオブジェクトの場合、作成された関数は、同等のソースプロパティを含む要素に対して true を返し、それ以外の場合は false を返します。

Since

4.0.0

引数

  1. [func=_.identity] (*): コールバックに変換する値。

戻り値

(関数): コールバックを返します。

var users = [
  { 'user''barney', 'age'36, 'active': true },
  { 'user''fred',   'age'40, 'active': false }
];
 
// The `_.matches` iteratee shorthand.
_.filter(users, _.iteratee({ 'user''barney', 'active': true }));
// => [{ 'user': 'barney', 'age': 36, 'active': true }]
 
// The `_.matchesProperty` iteratee shorthand.
_.filter(users, _.iteratee(['user', 'fred']));
// => [{ 'user': 'fred', 'age': 40 }]
 
// The `_.property` iteratee shorthand.
_.map(users, _.iteratee('user'));
// => ['barney', 'fred']
 
// Create custom iteratee shorthands.
_.iteratee = _.wrap(_.iteratee, function(iteratee, func) {
  return !_.isRegExp(func) ? iteratee(func) : function(string) {
    return func.test(string);
  };
});
 
_.filter(['abc', 'def'], /ef/);
// => ['def']

_.matches(source)

ソース npm パッケージ

指定されたオブジェクトと source の間で部分的な深層比較を実行し、指定されたオブジェクトに同等のプロパティ値がある場合は true を返し、それ以外の場合は false を返す関数を作成します。

注意: 作成された関数は、source が部分的に適用された _.isMatch と同等です。

部分的な比較では、空の配列および空のオブジェクトsourceの値は、それぞれ任意の配列またはオブジェクトの値と一致します。サポートされている値の比較の一覧については、_.isEqualを参照してください。

Since

3.0.0

引数

  1. source (Object): 一致させるプロパティ値のオブジェクト。

戻り値

(関数): 新しいスペック関数を返します。

var objects = [
  { 'a'1, 'b'2, 'c'3 },
  { 'a'4, 'b'5, 'c'6 }
];
 
_.filter(objects, _.matches({ 'a'4, 'c'6 }));
// => [{ 'a': 4, 'b': 5, 'c': 6 }]

_.matchesProperty(path, srcValue)

ソース npm パッケージ

指定されたオブジェクトの path の値と srcValue の間で部分的な深層比較を実行し、オブジェクトの値が同等の場合は true を返し、それ以外の場合は false を返す関数を作成します。

注意: 部分的な比較では、空の配列と空のオブジェクトの srcValue の値は、それぞれ任意の配列またはオブジェクトの値と一致します。サポートされている値の比較のリストについては、_.isEqual を参照してください。

Since

3.2.0

引数

  1. path (配列|文字列): 取得するプロパティのパス。
  2. srcValue (*): 一致させる値。

戻り値

(関数): 新しいスペック関数を返します。

var objects = [
  { 'a'1, 'b'2, 'c'3 },
  { 'a'4, 'b'5, 'c'6 }
];
 
_.find(objects, _.matchesProperty('a', 4));
// => { 'a': 4, 'b': 5, 'c': 6 }

_.method(path, [args])

ソース npm パッケージ

指定されたオブジェクトの path にあるメソッドを呼び出す関数を作成します。追加の引数は、呼び出されたメソッドに提供されます。

Since

3.7.0

引数

  1. path (配列|文字列): 呼び出すメソッドのパス。
  2. [args] (...*): メソッドを呼び出すための引数。

戻り値

(関数): 新しいインボーカー関数を返します。

var objects = [
  { 'a': { 'b': _.constant(2) } },
  { 'a': { 'b': _.constant(1) } }
];
 
_.map(objects, _.method('a.b'));
// => [2, 1]
 
_.map(objects, _.method(['a', 'b']));
// => [2, 1]

_.methodOf(object, [args])

ソース npm パッケージ

_.method の反対。このメソッドは、object の指定されたパスにあるメソッドを呼び出す関数を作成します。追加の引数は、呼び出されたメソッドに提供されます。

Since

3.7.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。
  2. [args] (...*): メソッドを呼び出すための引数。

戻り値

(関数): 新しいインボーカー関数を返します。

var array = _.times(3, _.constant),
    object = { 'a': array, 'b': array, 'c': array };
 
_.map(['a[2]', 'c[0]'], _.methodOf(object));
// => [2, 0]
 
_.map([['a', '2'], ['c', '0']], _.methodOf(object));
// => [2, 0]

_.mixin([object=lodash], source, [options={}])

ソース npm パッケージ

ソースオブジェクトの、独自の列挙可能な文字列キーの関数プロパティをすべて、コピー先のオブジェクトに追加します。object が関数の場合は、メソッドもそのプロトタイプに追加されます。

注意: 元の変更によって発生する競合を避けるため、オリジナルの lodash 関数を修正しないように、プリスティンな lodash 関数を作成するには、_.runInContext を使用してください。

Since

0.1.0

引数

  1. [object=lodash] (関数|オブジェクト): コピー先のオブジェクト。
  2. source (オブジェクト): 追加する関数のオブジェクト。
  3. [options={}] (Object): オプションオブジェクト。
  4. [options.chain=true] (ブール値): ミックスインがチェーン可能かどうかを指定します。

戻り値

(*): object を返します。

function vowels(string) {
  return _.filter(string, function(v) {
    return /[aeiou]/i.test(v);
  });
}
 
_.mixin({ 'vowels': vowels });
_.vowels('fred');
// => ['e']
 
_('fred').vowels().value();
// => ['e']
 
_.mixin({ 'vowels': vowels }, { 'chain': false });
_('fred').vowels();
// => ['e']

_.noConflict()

ソース npm パッケージ

_ 変数を前の値に戻し、lodash 関数への参照を返します。

Since

0.1.0

戻り値

(関数): lodash 関数を返します。

var lodash = _.noConflict();

_.noop()

ソース npm パッケージ

このメソッドは undefined を返します。

Since

2.3.0

_.times(2, _.noop);
// => [undefined, undefined]

_.nthArg([n=0])

ソース npm パッケージ

インデックス n の引数を取得する関数を作成します。n が負の場合、最後から n 番目の引数が返されます。

Since

4.0.0

引数

  1. [n=0] (数値): 返す引数のインデックス。

戻り値

(関数): 新しいパススルー関数を返します。

var func = _.nthArg(1);
func('a', 'b', 'c', 'd');
// => 'b'
 
var func = _.nthArg(-2);
func('a', 'b', 'c', 'd');
// => 'c'

_.over([iteratees=[_.identity]])

ソース npm パッケージ

受け取った引数で iteratees を呼び出し、それらの結果を返す関数を作成します。

Since

4.0.0

引数

  1. [iteratees=[_.identity]] (...(関数|関数[])): 呼び出すイテレータ。

戻り値

(Function): 新しい関数を返します。

var func = _.over([Math.max, Math.min]);
 
func(1, 2, 3, 4);
// => [4, 1]

_.overEvery([predicates=[_.identity]])

ソース npm パッケージ

predicatesすべてが、受け取った引数で呼び出されたときに真を返すかどうかをチェックする関数を作成します。

Since

4.0.0

引数

  1. [predicates=[_.identity]] (...(関数|関数[])): チェックする述語。

戻り値

(Function): 新しい関数を返します。

var func = _.overEvery([Boolean, isFinite]);
 
func('1');
// => true
 
func(null);
// => false
 
func(NaN);
// => false

_.overSome([predicates=[_.identity]])

ソース npmパッケージ

受け取った引数で呼び出されたときに、いずれかの predicates が真値を返すかどうかをチェックする関数を作成します。

Since

4.0.0

引数

  1. [predicates=[_.identity]] (...(関数|関数[])): チェックする述語。

戻り値

(Function): 新しい関数を返します。

var func = _.overSome([Boolean, isFinite]);
 
func('1');
// => true
 
func(null);
// => true
 
func(NaN);
// => false

_.property(path)

ソース npmパッケージ

与えられたオブジェクトのpathにある値を返す関数を作成します。

Since

2.4.0

引数

  1. path (配列|文字列): 取得するプロパティのパス。

戻り値

(関数): 新しいアクセサ関数を返します。

var objects = [
  { 'a': { 'b'2 } },
  { 'a': { 'b'1 } }
];
 
_.map(objects, _.property('a.b'));
// => [2, 1]
 
_.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
// => [1, 2]

_.propertyOf(object)

ソース npmパッケージ

_.propertyの反対です。このメソッドは、objectの指定されたパスにある値を返す関数を作成します。

Since

3.0.0

引数

  1. object (オブジェクト): クエリを実行するオブジェクト。

戻り値

(関数): 新しいアクセサ関数を返します。

var array = [0, 1, 2],
    object = { 'a': array, 'b': array, 'c': array };
 
_.map(['a[2]', 'c[0]'], _.propertyOf(object));
// => [2, 0]
 
_.map([['a', '2'], ['c', '0']], _.propertyOf(object));
// => [2, 0]

_.range([start=0], end, [step=1])

ソース npmパッケージ

startからendまで(ただし、endは含まない)の数値の配列を、(正および/または負) で作成します。startが負で、endまたはstepが指定されていない場合は、-1のステップが使用されます。endが指定されていない場合は、startに設定され、start0に設定されます。

注意: JavaScript は浮動小数点数の値を解決するために IEEE-754 標準に従っており、予期しない結果が生じる可能性があります。

Since

0.1.0

引数

  1. [start=0] (number): 範囲の開始。
  2. end (number): 範囲の終了。
  3. [step=1] (数値): 増減する値。

戻り値

(配列): 数値の範囲を返します。

_.range(4);
// => [0, 1, 2, 3]
 
_.range(-4);
// => [0, -1, -2, -3]
 
_.range(1, 5);
// => [1, 2, 3, 4]
 
_.range(0, 20, 5);
// => [0, 5, 10, 15]
 
_.range(0, -4, -1);
// => [0, -1, -2, -3]
 
_.range(1, 4, 0);
// => [1, 1, 1]
 
_.range(0);
// => []

_.rangeRight([start=0], end, [step=1])

ソース npmパッケージ

このメソッドは、_.rangeと似ていますが、降順で値を設定する点が異なります。

Since

4.0.0

引数

  1. [start=0] (number): 範囲の開始。
  2. end (number): 範囲の終了。
  3. [step=1] (数値): 増減する値。

戻り値

(配列): 数値の範囲を返します。

_.rangeRight(4);
// => [3, 2, 1, 0]
 
_.rangeRight(-4);
// => [-3, -2, -1, 0]
 
_.rangeRight(1, 5);
// => [4, 3, 2, 1]
 
_.rangeRight(0, 20, 5);
// => [15, 10, 5, 0]
 
_.rangeRight(0, -4, -1);
// => [-3, -2, -1, 0]
 
_.rangeRight(1, 4, 0);
// => [1, 1, 1]
 
_.rangeRight(0);
// => []

_.runInContext([context=root])

ソース npmパッケージ

contextオブジェクトを使用して、新しいプリスティンなlodash関数を作成します。

Since

1.1.0

引数

  1. [context=root] (オブジェクト): コンテキストオブジェクト。

戻り値

(関数): 新しいlodash関数を返します。

_.mixin({ 'foo': _.constant('foo') });
 
var lodash = _.runInContext();
lodash.mixin({ 'bar': lodash.constant('bar') });
 
_.isFunction(_.foo);
// => true
_.isFunction(_.bar);
// => false
 
lodash.isFunction(lodash.foo);
// => false
lodash.isFunction(lodash.bar);
// => true
 
// Create a suped-up `defer` in Node.js.
var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;

_.stubArray()

ソース npmパッケージ

このメソッドは、新しい空の配列を返します。

Since

4.13.0

戻り値

(配列): 新しい空の配列を返します。

var arrays = _.times(2, _.stubArray);
 
console.log(arrays);
// => [[], []]
 
console.log(arrays[0] === arrays[1]);
// => false

_.stubFalse()

ソース npmパッケージ

このメソッドはfalseを返します。

Since

4.13.0

戻り値

(真偽値): falseを返します。

_.times(2, _.stubFalse);
// => [false, false]

_.stubObject()

ソース npmパッケージ

このメソッドは、新しい空のオブジェクトを返します。

Since

4.13.0

戻り値

(オブジェクト): 新しい空のオブジェクトを返します。

var objects = _.times(2, _.stubObject);
 
console.log(objects);
// => [{}, {}]
 
console.log(objects[0] === objects[1]);
// => false

_.stubString()

ソース npmパッケージ

このメソッドは、空の文字列を返します。

Since

4.13.0

戻り値

(文字列): 空の文字列を返します。

_.times(2, _.stubString);
// => ['', '']

_.stubTrue()

ソース npmパッケージ

このメソッドはtrueを返します。

Since

4.13.0

戻り値

(真偽値): trueを返します。

_.times(2, _.stubTrue);
// => [true, true]

_.times(n, [iteratee=_.identity])

ソース npmパッケージ

イテレーターをn回呼び出し、各呼び出しの結果の配列を返します。イテレーターは1つの引数((インデックス))で呼び出されます。

Since

0.1.0

引数

  1. n (数値): iterateeを呼び出す回数。
  2. [iteratee=_.identity] (Function): 反復処理ごとに呼び出される関数。

戻り値

(Array): 結果の配列を返します。

_.times(3, String);
// => ['0', '1', '2']
 
 _.times(4, _.constant(0));
// => [0, 0, 0, 0]

_.toPath(value)

ソース npmパッケージ

valueをプロパティパス配列に変換します。

Since

4.0.0

引数

  1. value (*): 変換する値。

戻り値

(配列): 新しいプロパティパス配列を返します。

_.toPath('a.b.c');
// => ['a', 'b', 'c']
 
_.toPath('a[0].b.c');
// => ['a', '0', 'b', 'c']

_.uniqueId([prefix=''])

ソース npmパッケージ

一意のIDを生成します。prefixが指定された場合、IDはそれに付加されます。

Since

0.1.0

引数

  1. [prefix=''] (文字列): IDに付加する値。

戻り値

(文字列): 一意のIDを返します。

_.uniqueId('contact_');
// => 'contact_104'
 
_.uniqueId();
// => '105'

プロパティ

_.VERSION

ソース

(文字列): セマンティックバージョンの番号。

_.templateSettings

ソース npmパッケージ

(オブジェクト): デフォルトでは、lodashで使用されるテンプレート区切り文字は、埋め込みRuby (ERB) やES2015テンプレート文字列に似ています。代替の区切り文字を使用するには、次のテンプレート設定を変更します。

_.templateSettings.escape

ソース

(正規表現): HTMLエスケープされるdataプロパティ値を検出するために使用されます。

_.templateSettings.evaluate

ソース

(正規表現): 評価されるコードを検出するために使用されます。

_.templateSettings.imports

ソース

(オブジェクト): コンパイルされたテンプレートに変数をインポートするために使用されます。

_.templateSettings.interpolate

ソース

(正規表現): 挿入するdataプロパティ値を検出するために使用されます。

_.templateSettings.variable

ソース

(文字列): テンプレートテキスト内のデータオブジェクトを参照するために使用されます。

メソッド

_.templateSettings.imports._

ソース

lodash関数への参照。