配列
_.chunk
_.compact
_.concat
_.difference
_.differenceBy
_.differenceWith
_.drop
_.dropRight
_.dropRightWhile
_.dropWhile
_.fill
_.findIndex
_.findLastIndex
_.first
-> head
_.flatten
_.flattenDeep
_.flattenDepth
_.fromPairs
_.head
_.indexOf
_.initial
_.intersection
_.intersectionBy
_.intersectionWith
_.join
_.last
_.lastIndexOf
_.nth
_.pull
_.pullAll
_.pullAllBy
_.pullAllWith
_.pullAt
_.remove
_.reverse
_.slice
_.sortedIndex
_.sortedIndexBy
_.sortedIndexOf
_.sortedLastIndex
_.sortedLastIndexBy
_.sortedLastIndexOf
_.sortedUniq
_.sortedUniqBy
_.tail
_.take
_.takeRight
_.takeRightWhile
_.takeWhile
_.union
_.unionBy
_.unionWith
_.uniq
_.uniqBy
_.uniqWith
_.unzip
_.unzipWith
_.without
_.xor
_.xorBy
_.xorWith
_.zip
_.zipObject
_.zipObjectDeep
_.zipWith
コレクション
日付
関数
言語
_.castArray
_.clone
_.cloneDeep
_.cloneDeepWith
_.cloneWith
_.conformsTo
_.eq
_.gt
_.gte
_.isArguments
_.isArray
_.isArrayBuffer
_.isArrayLike
_.isArrayLikeObject
_.isBoolean
_.isBuffer
_.isDate
_.isElement
_.isEmpty
_.isEqual
_.isEqualWith
_.isError
_.isFinite
_.isFunction
_.isInteger
_.isLength
_.isMap
_.isMatch
_.isMatchWith
_.isNaN
_.isNative
_.isNil
_.isNull
_.isNumber
_.isObject
_.isObjectLike
_.isPlainObject
_.isRegExp
_.isSafeInteger
_.isSet
_.isString
_.isSymbol
_.isTypedArray
_.isUndefined
_.isWeakMap
_.isWeakSet
_.lt
_.lte
_.toArray
_.toFinite
_.toInteger
_.toLength
_.toNumber
_.toPlainObject
_.toSafeInteger
_.toString
数学
オブジェクト
_.assign
_.assignIn
_.assignInWith
_.assignWith
_.at
_.create
_.defaults
_.defaultsDeep
_.entries
-> toPairs
_.entriesIn
-> toPairsIn
_.extend
-> assignIn
_.extendWith
-> assignInWith
_.findKey
_.findLastKey
_.forIn
_.forInRight
_.forOwn
_.forOwnRight
_.functions
_.functionsIn
_.get
_.has
_.hasIn
_.invert
_.invertBy
_.invoke
_.keys
_.keysIn
_.mapKeys
_.mapValues
_.merge
_.mergeWith
_.omit
_.omitBy
_.pick
_.pickBy
_.result
_.set
_.setWith
_.toPairs
_.toPairsIn
_.transform
_.unset
_.update
_.updateWith
_.values
_.valuesIn
シーケンス
文字列
ユーティリティ
_.attempt
_.bindAll
_.cond
_.conforms
_.constant
_.defaultTo
_.flow
_.flowRight
_.identity
_.iteratee
_.matches
_.matchesProperty
_.method
_.methodOf
_.mixin
_.noConflict
_.noop
_.nthArg
_.over
_.overEvery
_.overSome
_.property
_.propertyOf
_.range
_.rangeRight
_.runInContext
_.stubArray
_.stubFalse
_.stubObject
_.stubString
_.stubTrue
_.times
_.toPath
_.uniqueId
プロパティ
「配列」メソッド
_.chunk(array, [size=1])
array
の要素をsize
の長さのグループに分割した配列を作成します。array
が均等に分割できない場合、最後のチャンクは残りの要素になります。
3.0.0
array
(Array): 処理する配列。[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)
偽値がすべて削除された配列を作成します。偽値は、false
、null
、0
、""
、undefined
、およびNaN
です。
0.1.0
array
(Array): コンパクト化する配列。(Array): フィルタリングされた値の新しい配列を返します。
_.compact([0, 1, false, 2, '', 3]);// => [1, 2, 3]
_.concat(array, [values])
array
に追加の配列や値を連結した新しい配列を作成します。
4.0.0
array
(Array): 連結する配列。[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])
SameValueZero
を使用して等価性比較を行い、他の指定された配列に含まれていないarray
の値の配列を作成します。結果の値の順序と参照は、最初の配列によって決定されます。
注: _.pullAll
とは異なり、このメソッドは新しい配列を返します。
0.1.0
array
(Array): 検査する配列。[values]
(...Array): 除外する値。(Array): フィルタリングされた値の新しい配列を返します。
_.difference([2, 1], [2, 3]);// => [1]
_.differenceBy(array, [values], [iteratee=_.identity])
このメソッドは_.difference
に似ていますが、array
とvalues
の各要素に対して呼び出されるiteratee
を受け入れ、比較の基準を生成する点が異なります。結果の値の順序と参照は、最初の配列によって決定されます。iterateeは1つの引数で呼び出されます。
(value).
注: _.pullAllBy
とは異なり、このメソッドは新しい配列を返します。
4.0.0
array
(Array): 検査する配列。[values]
(...Array): 除外する値。[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])
このメソッドは_.difference
に似ていますが、array
の要素とvalues
を比較するために呼び出されるcomparator
を受け入れる点が異なります。結果の値の順序と参照は、最初の配列によって決定されます。コンパレータは2つの引数で呼び出されます: (arrVal, othVal)。
注: _.pullAllWith
とは異なり、このメソッドは新しい配列を返します。
4.0.0
array
(Array): 検査する配列。[values]
(...Array): 除外する値。[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])
先頭からn
個の要素をドロップしたarray
のスライスを作成します。
0.5.0
array
(Array): クエリする配列。[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])
末尾からn
個の要素をドロップしたarray
のスライスを作成します。
3.0.0
array
(Array): クエリする配列。[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])
末尾からドロップされた要素を除外したarray
のスライスを作成します。predicate
が偽値を返すまで要素がドロップされます。述語は3つの引数で呼び出されます: (value, index, array)。
3.0.0
array
(Array): クエリする配列。[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])
array
の先頭から、要素が削除されていくスライスを作成します。predicate
が falsy を返すまで要素が削除されます。predicate は 3 つの引数 (value, index, array) で呼び出されます。
3.0.0
array
(Array): クエリする配列。[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])
array
の要素を、start
から end
(ただし end
は含まない)まで value
で埋めます。
注意: このメソッドは array
を変更します。
3.2.0
array
(Array): 埋める配列。value
(*): array
を埋める値。[start=0]
(number): 開始位置。[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])
このメソッドは _.find
と似ていますが、最初に見つかった要素自体ではなく、predicate
が truthy を返した最初の要素のインデックスを返します。
1.1.0
array
(Array): 検査する配列。[predicate=_.identity]
(Function): イテレーションごとに呼び出される関数。[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])
このメソッドは _.findIndex
と似ていますが、collection
の要素を右から左に反復処理します。
2.0.0
array
(Array): 検査する配列。[predicate=_.identity]
(Function): イテレーションごとに呼び出される関数。[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)
array
を一段階深くフラット化します。
0.1.0
array
(Array): フラット化する配列。(Array): 新しいフラット化された配列を返します。
_.flatten([1, [2, [3, [4]], 5]]);// => [1, 2, [3, [4]], 5]
_.flattenDeep(array)
array
を再帰的にフラット化します。
3.0.0
array
(Array): フラット化する配列。(Array): 新しいフラット化された配列を返します。
_.flattenDeep([1, [2, [3, [4]], 5]]);// => [1, 2, 3, 4, 5]
_.flattenDepth(array, [depth=1])
array
を depth
回まで再帰的にフラット化します。
4.4.0
array
(Array): フラット化する配列。[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)
_.toPairs
の逆です。このメソッドは、キーと値の pairs
から構成されたオブジェクトを返します。
4.0.0
pairs
(Array): キーと値のペア。(Object): 新しいオブジェクトを返します。
_.fromPairs([['a', 1], ['b', 2]]);// => { 'a': 1, 'b': 2 }
_.head(array)
array
の最初の要素を取得します。
0.1.0
_.first
array
(Array): クエリする配列。(*): array
の最初の要素を返します。
_.head([1, 2, 3]);// => 1 _.head([]);// => undefined
_.indexOf(array, value, [fromIndex=0])
array
内で最初に見つかった value
のインデックスを、SameValueZero
を用いた等価性比較によって取得します。fromIndex
が負数の場合は、array
の末尾からのオフセットとして使用されます。
0.1.0
array
(Array): 検査する配列。value
(*): 検索する値。[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)
array
の最後の要素以外のすべてを取得します。
0.1.0
array
(Array): クエリする配列。(Array): array
のスライスを返します。
_.initial([1, 2, 3]);// => [1, 2]
_.intersection([arrays])
SameValueZero
を用いた等価性比較によって、与えられたすべての配列に含まれるユニークな値の配列を作成します。結果の値の順序と参照は、最初の配列によって決定されます。
0.1.0
[arrays]
(...Array): 検査する配列。(Array): 交差する値の新しい配列を返します。
_.intersection([2, 1], [2, 3]);// => [2]
_.intersectionBy([arrays], [iteratee=_.identity])
このメソッドは _.intersection
と似ていますが、各 arrays
の各要素に対して呼び出され、比較基準を生成する iteratee
を受け入れます。結果の値の順序と参照は、最初の配列によって決定されます。iteratee は 1 つの引数で呼び出されます。
(value).
4.0.0
[arrays]
(...Array): 検査する配列。[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])
このメソッドは _.intersection
と似ていますが、arrays
の要素を比較するために呼び出される comparator
を受け入れます。結果の値の順序と参照は、最初の配列によって決定されます。コンパレータは 2 つの引数 (arrVal, othVal) で呼び出されます。
4.0.0
[arrays]
(...Array): 検査する配列。[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=','])
array
のすべての要素を、separator
で区切られた文字列に変換します。
4.0.0
array
(Array): 変換する配列。[separator=',']
(string): 要素の区切り文字。(string): 結合された文字列を返します。
_.join(['a', 'b', 'c'], '~');// => 'a~b~c'
_.last(array)
array
の最後の要素を取得します。
0.1.0
array
(Array): クエリする配列。(*): array
の最後の要素を返します。
_.last([1, 2, 3]);// => 3
_.lastIndexOf(array, value, [fromIndex=array.length-1])
このメソッドは _.indexOf
と似ていますが、array
の要素を右から左に反復処理します。
0.1.0
array
(Array): 検査する配列。value
(*): 検索する値。[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])
array
のインデックス n
の要素を取得します。n
が負数の場合、末尾から数えて n 番目の要素が返されます。
4.11.0
array
(Array): クエリする配列。[n=0]
(number): 返す要素のインデックス。(*): array
の n 番目の要素を返します。
var array = ['a', 'b', 'c', 'd']; _.nth(array, 1);// => 'b' _.nth(array, -2);// => 'c';
_.pull(array, [values])
SameValueZero
を用いた等価性比較によって、指定されたすべての値を array
から削除します。
注意: _.without
とは異なり、このメソッドは array
を変更します。述語によって配列から要素を削除するには、_.remove
を使用します。
2.0.0
array
(Array): 変更する配列。[values]
(...*): 削除する値。(Array): array
を返します。
var array = ['a', 'b', 'c', 'a', 'b', 'c']; _.pull(array, 'a', 'c');console.log(array);// => ['b', 'b']
_.pullAll(array, values)
このメソッドは _.pull
と似ていますが、削除する値の配列を受け入れます。
注意: _.difference
とは異なり、このメソッドは array
を変更します。
4.0.0
array
(Array): 変更する配列。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])
このメソッドは _.pullAll
と似ていますが、array
と values
の各要素に対して呼び出され、比較基準を生成する iteratee
を受け入れます。iteratee は 1 つの引数 (value) で呼び出されます。
注意: _.differenceBy
とは異なり、このメソッドは array
を変更します。
4.0.0
array
(Array): 変更する配列。values
(Array): 削除する値。[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])
このメソッドは _.pullAll
と似ていますが、array
の要素と values
を比較するために呼び出される comparator
を受け入れます。コンパレータは 2 つの引数 (arrVal, othVal) で呼び出されます。
注意: _.differenceWith
とは異なり、このメソッドは array
を変更します。
4.6.0
array
(Array): 変更する配列。values
(Array): 削除する値。[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])
indexes
に対応する array
から要素を削除し、削除された要素の配列を返します。
注意: _.at
とは異なり、このメソッドは array
を変更します。
3.0.0
array
(Array): 変更する配列。[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])
predicate
が truthy を返す array
からすべての要素を削除し、削除された要素の配列を返します。predicate は 3 つの引数 (value, index, array) で呼び出されます。
注意: _.filter
とは異なり、このメソッドは array
を変更します。値によって配列から要素を削除するには、_.pull
を使用します。
2.0.0
array
(Array): 変更する配列。[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)
array
の要素の順番を反転させます。最初の要素が最後になり、2番目の要素が最後から2番目になる、といった具合です。
注意: このメソッドは array
を変更し、Array#reverse
に基づいています。
4.0.0
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])
array
の start
から end
(end
は含まない)までのスライスを作成します。
注意: このメソッドは、密な配列が返されることを保証するために、Array#slice
の代わりに使用されます。
3.0.0
array
(Array): スライスする配列。[start=0]
(number): 開始位置。[end=array.length]
(number): 終了位置。(Array): array
のスライスを返します。
_.sortedIndex(array, value)
ソートされた array
内で、ソート順を維持するために value
を挿入すべき最も低いインデックスを、二分探索を使用して決定します。
0.1.0
array
(Array): 検査するソート済みの配列。value
(*): 評価する値。(number): value
を array
に挿入すべきインデックスを返します。
_.sortedIndex([30, 50], 40);// => 1
_.sortedIndexBy(array, value, [iteratee=_.identity])
このメソッドは _.sortedIndex
に似ていますが、iteratee
を受け入れる点が異なります。iteratee
は、ソートランキングを計算するために、value
および array
の各要素に対して呼び出されます。イテレーターは1つの引数 (value) で呼び出されます。
4.0.0
array
(Array): 検査するソート済みの配列。value
(*): 評価する値。[iteratee=_.identity]
(Function): 要素ごとに呼び出されるiteratee。(number): value
を array
に挿入すべきインデックスを返します。
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)
このメソッドは _.indexOf
に似ていますが、ソートされた array
に対して二分探索を実行する点が異なります。
4.0.0
array
(Array): 検査する配列。value
(*): 検索する値。(number): 一致する値のインデックスを返します。一致するものがない場合は -1
を返します。
_.sortedIndexOf([4, 5, 5, 5, 6], 5);// => 1
_.sortedLastIndex(array, value)
このメソッドは _.sortedIndex
に似ていますが、ソート順を維持するために value
を array
に挿入すべき最も高いインデックスを返す点が異なります。
3.0.0
array
(Array): 検査するソート済みの配列。value
(*): 評価する値。(number): value
を array
に挿入すべきインデックスを返します。
_.sortedLastIndex([4, 5, 5, 5, 6], 5);// => 4
_.sortedLastIndexBy(array, value, [iteratee=_.identity])
このメソッドは _.sortedLastIndex
に似ていますが、iteratee
を受け入れる点が異なります。iteratee
は、ソートランキングを計算するために、value
および array
の各要素に対して呼び出されます。イテレーターは1つの引数 (value) で呼び出されます。
4.0.0
array
(Array): 検査するソート済みの配列。value
(*): 評価する値。[iteratee=_.identity]
(Function): 要素ごとに呼び出されるiteratee。(number): value
を array
に挿入すべきインデックスを返します。
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)
このメソッドは _.lastIndexOf
に似ていますが、ソートされた array
に対して二分探索を実行する点が異なります。
4.0.0
array
(Array): 検査する配列。value
(*): 検索する値。(number): 一致する値のインデックスを返します。一致するものがない場合は -1
を返します。
_.sortedLastIndexOf([4, 5, 5, 5, 6], 5);// => 3
_.sortedUniq(array)
このメソッドは _.uniq
に似ていますが、ソートされた配列向けに設計および最適化されている点が異なります。
4.0.0
array
(Array): 検査する配列。(Array): 重複のない新しい配列を返します。
_.sortedUniq([1, 1, 2]);// => [1, 2]
_.sortedUniqBy(array, [iteratee])
このメソッドは _.uniqBy
に似ていますが、ソートされた配列向けに設計および最適化されている点が異なります。
4.0.0
array
(Array): 検査する配列。[iteratee]
(Function): 要素ごとに呼び出されるイテレーター。(Array): 重複のない新しい配列を返します。
_.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);// => [1.1, 2.3]
_.tail(array)
array
の最初の要素を除くすべての要素を取得します。
4.0.0
array
(Array): クエリする配列。(Array): array
のスライスを返します。
_.tail([1, 2, 3]);// => [2, 3]
_.take(array, [n=1])
array
の先頭から n
個の要素を取得したスライスを作成します。
0.1.0
array
(Array): クエリする配列。[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])
array
の末尾から n
個の要素を取得したスライスを作成します。
3.0.0
array
(Array): クエリする配列。[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])
array
の末尾から要素を取得したスライスを作成します。predicate
が偽を返すまで要素を取得します。述語は3つの引数 (value, index, array) で呼び出されます。
3.0.0
array
(Array): クエリする配列。[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])
array
の先頭から要素を取得したスライスを作成します。predicate
が偽を返すまで要素を取得します。述語は3つの引数 (value, index, array) で呼び出されます。
3.0.0
array
(Array): クエリする配列。[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])
与えられたすべての配列から、SameValueZero
を使用して等価性を比較し、順序通りに重複のない値の配列を作成します。
0.1.0
[arrays]
(...Array): 検査する配列。(Array): 結合された値の新しい配列を返します。
_.union([2], [1, 2]);// => [2, 1]
_.unionBy([arrays], [iteratee=_.identity])
このメソッドは _.union
に似ていますが、iteratee
を受け入れる点が異なります。iteratee
は、一意性を計算するための基準を生成するために、各 arrays
の各要素に対して呼び出されます。結果の値は、値が発生する最初の配列から選択されます。イテレーターは1つの引数で呼び出されます。
(value).
4.0.0
[arrays]
(...Array): 検査する配列。[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])
このメソッドは _.union
に似ていますが、arrays
の要素を比較するために呼び出される comparator
を受け入れる点が異なります。結果の値は、値が発生する最初の配列から選択されます。コンパレーターは、2つの引数 (arrVal, othVal) で呼び出されます。
4.0.0
[arrays]
(...Array): 検査する配列。[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)
配列の重複のないバージョンを作成します。SameValueZero
を使用して等価性を比較し、各要素の最初の出現のみが保持されます。結果の値の順序は、配列内での出現順序によって決定されます。
0.1.0
array
(Array): 検査する配列。(Array): 重複のない新しい配列を返します。
_.uniq([2, 1, 2]);// => [2, 1]
_.uniqBy(array, [iteratee=_.identity])
このメソッドは _.uniq
に似ていますが、一意性を計算する基準を生成するために array
内の各要素に対して呼び出される iteratee
を受け入れる点が異なります。結果の値の順序は、配列内での出現順序によって決定されます。イテレーターは1つの引数で呼び出されます。
(value).
4.0.0
array
(Array): 検査する配列。[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])
このメソッドは _.uniq
に似ていますが、array
の要素を比較するために呼び出される comparator
を受け入れる点が異なります。結果の値の順序は、配列内での出現順序によって決定されます。コンパレーターは、2つの引数 (arrVal, othVal) で呼び出されます。
4.0.0
array
(Array): 検査する配列。[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)
このメソッドは _.zip
に似ていますが、グループ化された要素の配列を受け取り、要素を元の zip 前の構成に再グループ化する配列を作成する点が異なります。
1.2.0
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])
このメソッドは _.unzip
に似ていますが、再グループ化された値をどのように結合するかを指定する iteratee
を受け入れる点が異なります。イテレーターは、各グループの要素 (...group) で呼び出されます。
3.8.0
array
(Array): 処理するグループ化された要素の配列。[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])
SameValueZero
を使用して等価性を比較し、指定されたすべての値を除外する配列を作成します。
注意: _.pull
とは異なり、このメソッドは新しい配列を返します。
0.1.0
array
(Array): 検査する配列。[values]
(...*): 除外する値。(Array): フィルタリングされた値の新しい配列を返します。
_.without([2, 1, 2, 3], 1, 2);// => [3]
_.xor([arrays])
指定された配列の対称差である一意の値の配列を作成します。結果の値の順序は、配列内での出現順序によって決定されます。
2.4.0
[arrays]
(...Array): 検査する配列。(Array): フィルタリングされた値の新しい配列を返します。
_.xor([2, 1], [2, 3]);// => [1, 3]
_.xorBy([arrays], [iteratee=_.identity])
このメソッドは _.xor
に似ていますが、比較される基準を生成するために、各 arrays
の各要素に対して呼び出される iteratee
を受け入れる点が異なります。結果の値の順序は、配列内での出現順序によって決定されます。イテレーターは1つの引数 (value) で呼び出されます。
4.0.0
[arrays]
(...Array): 検査する配列。[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])
このメソッドは、_.xor
に似ていますが、comparator
を受け取り、arrays
の要素を比較するために呼び出されます。結果の値の順序は、配列内での出現順によって決定されます。コンパレータは、2つの引数 (arrVal, othVal) で呼び出されます。
4.0.0
[arrays]
(...Array): 検査する配列。[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])
グループ化された要素の配列を作成します。最初の要素は、指定された配列の最初の要素を含み、2番目の要素は、指定された配列の2番目の要素を含み、以降同様です。
0.1.0
[arrays]
(...Array): 処理する配列。(Array): グループ化された要素の新しい配列を返します。
_.zip(['a', 'b'], [1, 2], [true, false]);// => [['a', 1, true], ['b', 2, false]]
_.zipObject([props=[]], [values=[]])
このメソッドは、_.fromPairs
に似ていますが、プロパティ識別子の配列と、対応する値の配列の2つを受け取ります。
0.4.0
[props=[]]
(Array): プロパティ識別子。[values=[]]
(Array): プロパティ値。(Object): 新しいオブジェクトを返します。
_.zipObject(['a', 'b'], [1, 2]);// => { 'a': 1, 'b': 2 }
_.zipObjectDeep([props=[]], [values=[]])
このメソッドは、_.zipObject
に似ていますが、プロパティパスをサポートしています。
4.1.0
[props=[]]
(Array): プロパティ識別子。[values=[]]
(Array): プロパティ値。(Object): 新しいオブジェクトを返します。
_.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);// => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }
_.zipWith([arrays], [iteratee=_.identity])
このメソッドは、_.zip
に似ていますが、グループ化された値をどのように結合するかを指定するための iteratee
を受け取ります。イテレータは、各グループの要素 (...group) で呼び出されます。
3.8.0
[arrays]
(...Array): 処理する配列。[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])
collection
の各要素を iteratee
を介して実行した結果から生成されたキーで構成されるオブジェクトを作成します。各キーの対応する値は、キーが iteratee
によって返された回数です。イテレータは、1つの引数 (value) で呼び出されます。
0.5.0
collection
(Array|Object): 反復処理するコレクション。[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])
predicate
が collection
の **すべての** 要素に対して truthy を返すかどうかを確認します。predicate
が falsey を返すと、反復処理は停止します。述語は、3つの引数 (value, index|key, collection) で呼び出されます。
注: このメソッドは、空のコレクションに対して true
を返します。これは、空のコレクションの要素については すべてが真 であるためです。
0.1.0
collection
(Array|Object): 反復処理するコレクション。[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])
collection
の要素を反復処理し、predicate
が truthy を返すすべての要素の配列を返します。述語は、3つの引数 (value, index|key, collection) で呼び出されます。
注: _.remove
とは異なり、このメソッドは新しい配列を返します。
0.1.0
collection
(Array|Object): 反復処理するコレクション。[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])
collection
の要素を反復処理し、predicate
が truthy を返す最初の要素を返します。述語は、3つの引数 (value, index|key, collection) で呼び出されます。
0.1.0
collection
(Array|Object): 検査するコレクション。[predicate=_.identity]
(Function): イテレーションごとに呼び出される関数。[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])
このメソッドは、_.find
に似ていますが、collection
の要素を右から左に反復処理します。
2.0.0
collection
(Array|Object): 検査するコレクション。[predicate=_.identity]
(Function): イテレーションごとに呼び出される関数。[fromIndex=collection.length-1]
(number): 検索を開始するインデックス。(*): 一致する要素を返します。それ以外の場合は undefined
を返します。
_.findLast([1, 2, 3, 4], function(n) { return n % 2 == 1;});// => 3
_.flatMap(collection, [iteratee=_.identity])
collection
の各要素を iteratee
を介して実行し、マップされた結果をフラット化することにより、値のフラット化された配列を作成します。イテレータは、3つの引数 (value, index|key, collection) で呼び出されます。
4.0.0
collection
(Array|Object): 反復処理するコレクション。[iteratee=_.identity]
(Function): 反復処理ごとに呼び出される関数。(Array): 新しいフラット化された配列を返します。
function duplicate(n) { return [n, n];} _.flatMap([1, 2], duplicate);// => [1, 1, 2, 2]
_.flatMapDeep(collection, [iteratee=_.identity])
このメソッドは、_.flatMap
に似ていますが、マップされた結果を再帰的にフラット化します。
4.7.0
collection
(Array|Object): 反復処理するコレクション。[iteratee=_.identity]
(Function): 反復処理ごとに呼び出される関数。(Array): 新しいフラット化された配列を返します。
function duplicate(n) { return [[[n, n]]];} _.flatMapDeep([1, 2], duplicate);// => [1, 1, 2, 2]
_.flatMapDepth(collection, [iteratee=_.identity], [depth=1])
このメソッドは、_.flatMap
に似ていますが、マップされた結果を最大 depth
回再帰的にフラット化します。
4.7.0
collection
(Array|Object): 反復処理するコレクション。[iteratee=_.identity]
(Function): 反復処理ごとに呼び出される関数。[depth=1]
(number): 最大再帰深度。(Array): 新しいフラット化された配列を返します。
function duplicate(n) { return [[[n, n]]];} _.flatMapDepth([1, 2], duplicate, 2);// => [[1, 1], [2, 2]]
_.forEach(collection, [iteratee=_.identity])
collection
の要素を反復処理し、各要素に対して iteratee
を呼び出します。イテレータは、3つの引数 (value, index|key, collection) で呼び出されます。イテレータ関数は、明示的に false
を返すことで、反復処理を早期に終了できます。
注: 他の「コレクション」メソッドと同様に、「length」プロパティを持つオブジェクトは配列のように反復処理されます。この動作を回避するには、オブジェクトの反復処理に _.forIn
または _.forOwn
を使用します。
0.1.0
_.each
collection
(Array|Object): 反復処理するコレクション。[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])
このメソッドは、_.forEach
に似ていますが、collection
の要素を右から左に反復処理します。
2.0.0
_.eachRight
collection
(Array|Object): 反復処理するコレクション。[iteratee=_.identity]
(Function): 反復処理ごとに呼び出される関数。(*): collection
を返します。
_.forEachRight([1, 2], function(value) { console.log(value);});// => Logs `2` then `1`.
_.groupBy(collection, [iteratee=_.identity])
collection
の各要素を iteratee
を介して実行した結果から生成されたキーで構成されるオブジェクトを作成します。グループ化された値の順序は、collection
内での出現順序によって決定されます。各キーの対応する値は、キーを生成した要素の配列です。イテレータは、1つの引数 (value) で呼び出されます。
0.1.0
collection
(Array|Object): 反復処理するコレクション。[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])
value
が collection
内にあるかどうかを確認します。collection
が文字列の場合、value
の部分文字列であるかどうかがチェックされます。それ以外の場合は、SameValueZero
が等価性比較に使用されます。fromIndex
が負の場合、collection
の末尾からのオフセットとして使用されます。
0.1.0
collection
(Array|Object|string): 検査するコレクション。value
(*): 検索する値。[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])
collection
内の各要素の path
にあるメソッドを呼び出し、呼び出された各メソッドの結果の配列を返します。追加の引数は、呼び出された各メソッドに提供されます。path
が関数の場合、collection
内の各要素に対して、this
がバインドされた状態で呼び出されます。
4.0.0
collection
(Array|Object): 反復処理するコレクション。path
(Array|Function|string): 呼び出すメソッドのパス、または反復処理ごとに呼び出される関数。[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])
collection
の各要素を iteratee
を介して実行した結果から生成されたキーで構成されるオブジェクトを作成します。各キーの対応する値は、キーを生成した最後の要素です。イテレータは、1つの引数 (value) で呼び出されます。
4.0.0
collection
(Array|Object): 反復処理するコレクション。[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])
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
0.1.0
collection
(Array|Object): 反復処理するコレクション。[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])
このメソッドは_.sortBy
と似ていますが、ソートの基準となるイテレーターのソート順を指定できる点が異なります。orders
が指定されていない場合、すべての値は昇順にソートされます。それ以外の場合は、対応する値の降順ソートには "desc"、昇順ソートには "asc" の順序を指定します。
4.0.0
collection
(Array|Object): 反復処理するコレクション。[iteratees=[_.identity]]
(Array[]|Function[]|Object[]|string[]): ソートの基準となるイテレーター。[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])
要素を2つのグループに分割した配列を作成します。最初のグループには、predicate
が truthy を返す要素が含まれ、2番目のグループには、predicate
が falsey を返す要素が含まれます。predicate は1つの引数((value))で呼び出されます。
3.0.0
collection
(Array|Object): 反復処理するコレクション。[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])
collection
の各要素を iteratee
で実行し、その結果を累積した値を返します。各呼び出しは、前の呼び出しの戻り値を渡されます。accumulator
が指定されていない場合は、collection
の最初の要素が初期値として使用されます。イテレーターは4つの引数で呼び出されます。
(accumulator, value, index|key, collection).
lodashの多くのメソッドは、_.reduce
、_.reduceRight
、および_.transform
のようなメソッドのイテレーターとして機能するようにガードされています。
保護されたメソッドはassign
, defaults
, defaultsDeep
, includes
, merge
, orderBy
, および sortBy
0.1.0
collection
(Array|Object): 反復処理するコレクション。[iteratee=_.identity]
(Function): 反復処理ごとに呼び出される関数。[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])
このメソッドは_.reduce
と似ていますが、collection
の要素を右から左に反復処理する点が異なります。
0.1.0
collection
(Array|Object): 反復処理するコレクション。[iteratee=_.identity]
(Function): 反復処理ごとに呼び出される関数。[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])
_.filter
の逆です。このメソッドは、predicate
がtruthyを返さないcollection
の要素を返します。
0.1.0
collection
(Array|Object): 反復処理するコレクション。[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)
collection
からランダムな要素を取得します。
2.0.0
collection
(Array|Object): サンプリングするコレクション。(*): ランダムな要素を返します。
_.sample([1, 2, 3, 4]);// => 2
_.sampleSize(collection, [n=1])
collection
から、collection
のサイズまでの範囲で、一意のキーを持つn
個のランダムな要素を取得します。
4.0.0
collection
(Array|Object): サンプリングするコレクション。[n=1]
(number): サンプリングする要素の数。(Array): ランダムな要素を返します。
_.sampleSize([1, 2, 3], 2);// => [3, 1] _.sampleSize([1, 2, 3], 4);// => [2, 3, 1]
_.shuffle(collection)
Fisher-Yatesシャッフルのバージョンを使用して、シャッフルされた値の配列を作成します。
0.1.0
collection
(Array|Object): シャッフルするコレクション。(Array): 新しいシャッフルされた配列を返します。
_.shuffle([1, 2, 3, 4]);// => [4, 1, 3, 2]
_.size(collection)
配列のような値の場合はその長さを返し、オブジェクトの場合は独自の列挙可能な文字列キー付きプロパティの数を返すことで、collection
のサイズを取得します。
0.1.0
collection
(Array|Object|string): 検査するコレクション。(number): コレクションのサイズを返します。
_.size([1, 2, 3]);// => 3 _.size({ 'a': 1, 'b': 2 });// => 2 _.size('pebbles');// => 7
_.some(collection, [predicate=_.identity])
predicate
がcollection
のいずれかの要素に対してtruthyを返すかどうかを確認します。predicate
がtruthyを返すと、反復処理が停止します。predicateは3つの引数((value, index|key, collection))で呼び出されます。
0.1.0
collection
(Array|Object): 反復処理するコレクション。[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]])
コレクションの各要素を各イテレーターで実行した結果によって昇順にソートされた要素の配列を作成します。このメソッドは安定ソートを実行します。つまり、等しい要素の元のソート順序を保持します。イテレーターは1つの引数((value))で呼び出されます。
0.1.0
collection
(Array|Object): 反復処理するコレクション。[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」メソッド
「Function」メソッド
_.after(n, func)
_.before
の反対です。このメソッドは、func
がn
回以上呼び出されたときに一度呼び出す関数を作成します。
0.1.0
n
(number): func
が呼び出される前の呼び出し回数。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])
func
を最大n
個の引数で呼び出し、それ以降の引数を無視する関数を作成します。
3.0.0
func
(Function): 引数を制限する関数。[n=func.length]
(number): アリティの上限。(Function): 新しい上限付き関数を返します。
_.map(['6', '8', '10'], _.ary(parseInt, 1));// => [6, 8, 10]
_.before(n, func)
作成された関数のthis
バインディングと引数を使用して、func
をn
回未満呼び出す関数を作成します。作成された関数への後続の呼び出しは、最後のfunc
呼び出しの結果を返します。
3.0.0
n
(number): func
が呼び出されなくなる呼び出し回数。func
(Function): 制約する関数。(Function): 新しい制約された関数を返します。
jQuery(element).on('click', _.before(5, addContactToList));// => Allows adding up to 4 contacts to the list.
_.bind(func, thisArg, [partials])
func
をthisArg
のthis
バインディングと、受け取る引数の先頭に付加されたpartials
で呼び出す関数を作成します。_.bind.placeholder
値(モノリシックビルドではデフォルトで_
)は、部分的に適用される引数のプレースホルダーとして使用できます。
注意: ネイティブのFunction#bind
とは異なり、このメソッドはバインドされた関数の "length" プロパティを設定しません。
0.1.0
func
(Function): バインドする関数。thisArg
(*): func
のthis
バインディング。[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])
object[key]
のメソッドを、受け取る引数の先頭に付加されたpartials
で呼び出す関数を作成します。
このメソッドは、バインドされた関数が再定義されたり、まだ存在しない可能性のあるメソッドを参照できるようにすることで、_.bind
と異なります。詳細については、Peter Michauxの記事を参照してください。_.bindKey.placeholder
値(モノリシックビルドではデフォルトで_
)は、部分的に適用される引数のプレースホルダーとして使用できます。
0.10.0
object
(Object): メソッドを呼び出すオブジェクト。key
(string): メソッドのキー。[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])
func
の引数を受け入れ、少なくともarity
個の引数が提供された場合はfunc
を呼び出してその結果を返すか、残りのfunc
の引数を受け入れる関数を返す関数を作成します。func.length
が十分でない場合は、func
のアリティを指定できます。_.curry.placeholder
値(モノリシックビルドではデフォルトで_
)は、提供された引数のプレースホルダーとして使用できます。
注意: このメソッドは、カリー化された関数の "length" プロパティを設定しません。
2.0.0
func
(Function): カリー化する関数。[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])
このメソッドは_.curry
と似ていますが、引数が_.partial
の代わりに_.partialRight
のようにfunc
に適用される点が異なります。_.curryRight.placeholder
値(モノリシックビルドではデフォルトで_
)は、提供された引数のプレースホルダーとして使用できます。
注意: このメソッドは、カリー化された関数の "length" プロパティを設定しません。
3.0.0
func
(Function): カリー化する関数。[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={}])
デバウンスされた関数を作成します。この関数は、デバウンスされた関数が最後に呼び出されてからwait
ミリ秒が経過するまで、func
の呼び出しを遅延させます。デバウンスされた関数には、遅延されたfunc
の呼び出しをキャンセルするcancel
メソッドと、それらをすぐに呼び出すflush
メソッドが付属しています。options
を提供して、func
をwait
タイムアウトの先頭および/または末尾で呼び出す必要があるかどうかを示します。func
は、デバウンスされた関数に提供された最後の引数で呼び出されます。デバウンスされた関数への後続の呼び出しは、最後のfunc
呼び出しの結果を返します。
注意: leading
およびtrailing
オプションがtrue
の場合、func
は、デバウンスされた関数がwait
タイムアウト中に複数回呼び出された場合にのみ、タイムアウトの末尾で呼び出されます。wait
が0
で、leading
がfalse
の場合、func
の呼び出しは、タイムアウトが0
のsetTimeout
と同様に、次のティックまで延期されます。_.debounce
と_.throttle
の違いの詳細については、David Corbachoの記事を参照してください。
0.1.0
func
(Function): デバウンスする関数。[wait=0]
(number): 遅延するミリ秒数。[options={}]
(Object): オプションオブジェクト。[options.leading=false]
(boolean): タイムアウトの先頭で呼び出すことを指定します。[options.maxWait]
(number): func
が呼び出されるまでに遅延できる最大時間。[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])
現在のコールスタックがクリアされるまで、func
の呼び出しを遅延させます。追加の引数は、func
が呼び出されるときに提供されます。
0.1.0
func
(Function): 遅延させる関数。[args]
(...*): func
を呼び出す際の引数。(number): タイマー ID を返します。
_.defer(function(text) { console.log(text);}, 'deferred');// => Logs 'deferred' after one millisecond.
_.delay(func, wait, [args])
wait
ミリ秒後に func
を呼び出します。追加の引数は、func
が呼び出されるときに提供されます。
0.1.0
func
(Function): 遅延させる関数。wait
(number): 呼び出しを遅延させるミリ秒数。[args]
(...*): func
を呼び出す際の引数。(number): タイマー ID を返します。
_.delay(function(text) { console.log(text);}, 1000, 'later');// => Logs 'later' after one second.
_.flip(func)
引数が反転された状態で func
を呼び出す関数を作成します。
4.0.0
func
(Function): 引数を反転する関数。(Function): 新しい反転された関数を返します。
var flipped = _.flip(function() { return _.toArray(arguments);}); flipped('a', 'b', 'c', 'd');// => ['d', 'c', 'b', 'a']
_.memoize(func, [resolver])
func
の結果をメモ化する関数を作成します。resolver
が指定されている場合、メモ化された関数に提供される引数に基づいて結果を格納するためのキャッシュキーを決定します。デフォルトでは、メモ化された関数に提供される最初の引数がマップキャッシュキーとして使用されます。func
は、メモ化された関数の this
バインディングで呼び出されます。
注: キャッシュは、メモ化された関数の cache
プロパティとして公開されます。その作成は、_.memoize.Cache
コンストラクタを、clear
、delete
、get
、has
、および set
の Map
メソッドインターフェースを実装するインスタンスを持つコンストラクタで置き換えることでカスタマイズできます。
0.1.0
func
(Function): 出力をメモ化する関数。[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)
述語 func
の結果を否定する関数を作成します。func
述語は、作成された関数の this
バインディングと引数で呼び出されます。
3.0.0
predicate
(Function): 否定する述語。(Function): 新しい否定された関数を返します。
function isEven(n) { return n % 2 == 0;} _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));// => [1, 3, 5]
_.once(func)
func
を一度だけ呼び出すように制限された関数を作成します。関数への繰り返し呼び出しは、最初の呼び出しの値を返します。func
は、作成された関数の this
バインディングと引数で呼び出されます。
0.1.0
func
(Function): 制約する関数。(Function): 新しい制約された関数を返します。
var initialize = _.once(createApplication);initialize();initialize();// => `createApplication` is invoked once
_.overArgs(func, [transforms=[_.identity]])
引数が変換された状態で func
を呼び出す関数を作成します。
4.0.0
func
(Function): ラップする関数。[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])
受け取る引数の前に partials
が付加された状態で func
を呼び出す関数を作成します。このメソッドは、this
バインディングを変更しないという点を除いて、_.bind
に似ています。
モノリシックビルドではデフォルトで _
である _.partial.placeholder
値は、部分的に適用された引数のプレースホルダーとして使用できます。
注: このメソッドは、部分的に適用された関数の「length」プロパティを設定しません。
0.2.0
func
(Function): 部分的に引数を適用する関数。[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])
このメソッドは、部分的に適用された引数が受け取る引数に追加されるという点を除いて、_.partial
に似ています。
モノリシックビルドではデフォルトで _
である _.partialRight.placeholder
値は、部分的に適用された引数のプレースホルダーとして使用できます。
注: このメソッドは、部分的に適用された関数の「length」プロパティを設定しません。
1.0.0
func
(Function): 部分的に引数を適用する関数。[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)
指定された indexes
に従って引数を配置した状態で func
を呼び出す関数を作成します。最初のインデックスの値が最初の引数として提供され、2 番目のインデックスの値が 2 番目の引数として提供されるというようになります。
3.0.0
func
(Function): 引数を再配置する関数。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])
作成された関数の this
バインディングと、start
以降の引数を配列として提供した状態で func
を呼び出す関数を作成します。
注: このメソッドは、残余引数に基づいています。
4.0.0
func
(Function): 残余引数を適用する関数。[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])
作成された関数の this
バインディングと、Function#apply
と同様に引数の配列を渡した状態で func
を呼び出す関数を作成します。
注: このメソッドは、スプレッド演算子に基づいています。
3.2.0
func
(Function): 引数を展開する関数。[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={}])
func
を最大で wait
ミリ秒ごとに一度だけ呼び出すスロットルされた関数を作成します。スロットルされた関数には、遅延した func
の呼び出しをキャンセルする cancel
メソッドと、それらをすぐに呼び出す flush
メソッドが付属しています。wait
タイムアウトの先頭エッジと末尾エッジのどちらで func
を呼び出すべきかを示すには、options
を指定します。func
は、スロットルされた関数に提供された最後の引数で呼び出されます。スロットルされた関数への後続の呼び出しは、最後の func
の呼び出しの結果を返します。
注: leading
オプションと trailing
オプションが true
の場合、func
は、スロットルされた関数が wait
タイムアウト中に複数回呼び出された場合にのみ、タイムアウトの末尾エッジで呼び出されます。wait
が0
で、leading
がfalse
の場合、func
の呼び出しは、タイムアウトが0
のsetTimeout
と同様に、次のティックまで延期されます。
David Corbacho の記事で、_.throttle
と _.debounce
の違いの詳細を参照してください。
0.1.0
func
(Function): スロットルする関数。[wait=0]
(number): 呼び出しをスロットルするミリ秒数。[options={}]
(Object): オプションオブジェクト。[options.leading=true]
(boolean): タイムアウトの先頭エッジで呼び出すかどうかを指定します。[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)
最大で 1 つの引数を受け入れ、追加の引数を無視する関数を作成します。
4.0.0
func
(Function): 引数を制限する関数。(Function): 新しい上限付き関数を返します。
_.map(['6', '8', '10'], _.unary(parseInt));// => [6, 8, 10]
_.wrap(value, [wrapper=identity])
value
を最初の引数として wrapper
に提供する関数を作成します。関数に提供された追加の引数は、wrapper
に提供された引数に追加されます。ラッパーは、作成された関数の this
バインディングで呼び出されます。
0.1.0
value
(*): ラップする値。[wrapper=identity]
(Function): ラッパー関数。(Function): 新しい関数を返します。
var p = _.wrap(_.escape, function(func, text) { return '<p>' + func(text) + '</p>';}); p('fred, barney, & pebbles');// => '<p>fred, barney, & pebbles</p>'
“Lang” メソッド
_.castArray(value)
value
が配列でない場合に、配列としてキャストします。
4.4.0
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)
value
のシャローコピーを作成します。
注: このメソッドは、構造化クローンアルゴリズムに大まかに基づいており、配列、配列バッファ、ブール値、日付オブジェクト、マップ、数値、Object
オブジェクト、正規表現、セット、文字列、シンボル、および型付き配列のクローン作成をサポートしています。arguments
オブジェクトの独自の列挙可能なプロパティは、プレーンオブジェクトとしてクローン作成されます。エラーオブジェクト、関数、DOM ノード、WeakMaps など、クローン作成できない値に対しては、空のオブジェクトが返されます。
0.1.0
value
(*): クローンを作成する値。(*): クローンされた値を返します。
var objects = [{ 'a': 1 }, { 'b': 2 }]; var shallow = _.clone(objects);console.log(shallow[0] === objects[0]);// => true
_.cloneDeep(value)
このメソッドは、value
を再帰的にクローンするという点を除いて、_.clone
に似ています。
1.0.0
value
(*): 再帰的にクローンする値。(*): 深くクローンされた値を返します。
var objects = [{ 'a': 1 }, { 'b': 2 }]; var deep = _.cloneDeep(objects);console.log(deep[0] === objects[0]);// => false
_.cloneDeepWith(value, [customizer])
このメソッドは、value
を再帰的にクローンするという点を除いて、_.cloneWith
に似ています。
4.0.0
value
(*): 再帰的にクローンする値。[customizer]
(Function): クローン作成をカスタマイズする関数。(*): 深くクローンされた値を返します。
function customizer(value) { if (_.isElement(value)) { return value.cloneNode(true); }} var el = _.cloneDeepWith(document.body, customizer); console.log(el === document.body);// => falseconsole.log(el.nodeName);// => 'BODY'console.log(el.childNodes.length);// => 20
_.cloneWith(value, [customizer])
このメソッドは、クローンされた値を生成するために呼び出される customizer
を受け入れるという点を除いて、_.clone
に似ています。customizer
が undefined
を返した場合、クローン作成は代わりにこのメソッドによって処理されます。customizer
は、最大 4 つの引数 ((value [, index|key, object, stack])) で呼び出されます。
4.0.0
value
(*): クローンを作成する値。[customizer]
(Function): クローン作成をカスタマイズする関数。(*): クローンされた値を返します。
function customizer(value) { if (_.isElement(value)) { return value.cloneNode(false); }} var el = _.cloneWith(document.body, customizer); console.log(el === document.body);// => falseconsole.log(el.nodeName);// => 'BODY'console.log(el.childNodes.length);// => 0
_.conformsTo(object, source)
object
の対応するプロパティ値で source
の述語プロパティを呼び出すことで、object
が source
に準拠しているかどうかを確認します。
注: このメソッドは、source
が部分的に適用されている場合、_.conforms
と同等です。
4.14.0
object
(Object): 検査するオブジェクト。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)
2 つの値が等しいかどうかを判断するために、SameValueZero
比較を実行します。
4.0.0
value
(*): 比較する値。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)
value
がother
より大きいかどうかをチェックします。
3.9.0
value
(*): 比較する値。other
(*): 比較するもう一方の値。(boolean): value
がother
より大きい場合はtrue
、そうでない場合はfalse
を返します。
_.gt(3, 1);// => true _.gt(3, 3);// => false _.gt(1, 3);// => false
_.gte(value, other)
value
がother
以上かどうかをチェックします。
3.9.0
value
(*): 比較する値。other
(*): 比較するもう一方の値。(boolean): value
がother
以上の場合はtrue
、そうでない場合はfalse
を返します。
_.gte(3, 1);// => true _.gte(3, 3);// => true _.gte(1, 3);// => false
_.isArguments(value)
value
がarguments
オブジェクトである可能性が高いかどうかをチェックします。
0.1.0
value
(*): チェックする値。(boolean): value
がarguments
オブジェクトの場合はtrue
、そうでない場合はfalse
を返します。
_.isArguments(function() { return arguments; }());// => true _.isArguments([1, 2, 3]);// => false
_.isArray(value)
value
がArray
オブジェクトとして分類されるかどうかをチェックします。
0.1.0
value
(*): チェックする値。(boolean): value
が配列の場合はtrue
、そうでない場合はfalse
を返します。
_.isArray([1, 2, 3]);// => true _.isArray(document.body.children);// => false _.isArray('abc');// => false _.isArray(_.noop);// => false
_.isArrayBuffer(value)
value
がArrayBuffer
オブジェクトとして分類されるかどうかをチェックします。
4.3.0
value
(*): チェックする値。(boolean): value
がArrayBufferの場合はtrue
、そうでない場合はfalse
を返します。
_.isArrayBuffer(new ArrayBuffer(2));// => true _.isArrayBuffer(new Array(2));// => false
_.isArrayLike(value)
value
が配列ライクかどうかをチェックします。値が関数ではなく、かつvalue.length
が0
以上Number.MAX_SAFE_INTEGER
以下の整数である場合、配列ライクとみなされます。
4.0.0
value
(*): チェックする値。(boolean): value
が配列ライクの場合はtrue
、そうでない場合はfalse
を返します。
_.isArrayLike([1, 2, 3]);// => true _.isArrayLike(document.body.children);// => true _.isArrayLike('abc');// => true _.isArrayLike(_.noop);// => false
_.isArrayLikeObject(value)
このメソッドは_.isArrayLike
に似ていますが、value
がオブジェクトであるかどうかもチェックします。
4.0.0
value
(*): チェックする値。(boolean): value
が配列ライクなオブジェクトの場合はtrue
、そうでない場合はfalse
を返します。
_.isArrayLikeObject([1, 2, 3]);// => true _.isArrayLikeObject(document.body.children);// => true _.isArrayLikeObject('abc');// => false _.isArrayLikeObject(_.noop);// => false
_.isBoolean(value)
value
がブール型のプリミティブまたはオブジェクトとして分類されるかどうかをチェックします。
0.1.0
value
(*): チェックする値。(boolean): value
がブール値の場合はtrue
、そうでない場合はfalse
を返します。
_.isBoolean(false);// => true _.isBoolean(null);// => false
_.isBuffer(value)
value
がBufferかどうかをチェックします。
4.3.0
value
(*): チェックする値。(boolean): value
がBufferの場合はtrue
、そうでない場合はfalse
を返します。
_.isBuffer(new Buffer(2));// => true _.isBuffer(new Uint8Array(2));// => false
_.isDate(value)
value
がDate
オブジェクトとして分類されるかどうかをチェックします。
0.1.0
value
(*): チェックする値。(boolean): value
がDateオブジェクトの場合はtrue
、そうでない場合はfalse
を返します。
_.isDate(new Date);// => true _.isDate('Mon April 23 2012');// => false
_.isElement(value)
value
がDOM要素である可能性が高いかどうかをチェックします。
0.1.0
value
(*): チェックする値。(boolean): value
がDOM要素の場合はtrue
、そうでない場合はfalse
を返します。
_.isElement(document.body);// => true _.isElement('<body>');// => false
_.isEmpty(value)
value
が空のオブジェクト、コレクション、マップ、またはセットであるかどうかをチェックします。
オブジェクトは、列挙可能な文字列キーのプロパティを所有していない場合、空とみなされます。arguments
オブジェクト、配列、Buffer、文字列、jQueryのようなコレクションなどの配列ライクな値は、length
が0
の場合に空とみなされます。同様に、マップとセットは、size
が0
の場合に空とみなされます。
0.1.0
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)
2つの値が等価であるかどうかを判断するために、それらの間で深い比較を実行します。
注: このメソッドは、配列、ArrayBuffer、ブール値、Dateオブジェクト、Errorオブジェクト、マップ、数値、Object
オブジェクト、正規表現、セット、文字列、シンボル、型付き配列の比較をサポートしています。Object
オブジェクトは、継承されたものではなく、自身の列挙可能なプロパティによって比較されます。関数とDOMノードは、厳密な等価性、つまり===
によって比較されます。
0.1.0
value
(*): 比較する値。other
(*): 比較するもう一方の値。(boolean): 値が等しい場合はtrue
、そうでない場合はfalse
を返します。
var object = { 'a': 1 };var other = { 'a': 1 }; _.isEqual(object, other);// => true object === other;// => false
_.isEqualWith(value, other, [customizer])
このメソッドは_.isEqual
に似ていますが、値の比較に使用されるcustomizer
を受け入れる点が異なります。customizer
がundefined
を返した場合、比較は代わりにこのメソッドによって処理されます。customizer
は、最大6つの引数((objValue, othValue [, index|key, object, other, stack]))で呼び出されます。
4.0.0
value
(*): 比較する値。other
(*): 比較するもう一方の値。[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)
value
がError
、EvalError
、RangeError
、ReferenceError
、SyntaxError
、TypeError
、またはURIError
オブジェクトであるかどうかをチェックします。
3.0.0
value
(*): チェックする値。(boolean): value
がエラーオブジェクトの場合はtrue
、そうでない場合はfalse
を返します。
_.isError(new Error);// => true _.isError(Error);// => false
_.isFinite(value)
value
が有限のプリミティブ数値であるかどうかをチェックします。
注: このメソッドは、Number.isFinite
に基づいています。
0.1.0
value
(*): チェックする値。(boolean): value
が有限の数値の場合はtrue
、そうでない場合はfalse
を返します。
_.isFinite(3);// => true _.isFinite(Number.MIN_VALUE);// => true _.isFinite(Infinity);// => false _.isFinite('3');// => false
_.isFunction(value)
value
がFunction
オブジェクトとして分類されるかどうかをチェックします。
0.1.0
value
(*): チェックする値。(boolean): value
が関数の場合はtrue
、そうでない場合はfalse
を返します。
_.isFunction(_);// => true _.isFunction(/abc/);// => false
_.isInteger(value)
value
が整数であるかどうかをチェックします。
注: このメソッドは、Number.isInteger
に基づいています。
4.0.0
value
(*): チェックする値。(boolean): value
が整数の場合はtrue
、そうでない場合はfalse
を返します。
_.isInteger(3);// => true _.isInteger(Number.MIN_VALUE);// => false _.isInteger(Infinity);// => false _.isInteger('3');// => false
_.isLength(value)
value
が有効な配列ライクな長さであるかどうかをチェックします。
注: このメソッドは、ToLength
にゆるく基づいています。
4.0.0
value
(*): チェックする値。(boolean): value
が有効な長さの場合はtrue
、そうでない場合はfalse
を返します。
_.isLength(3);// => true _.isLength(Number.MIN_VALUE);// => false _.isLength(Infinity);// => false _.isLength('3');// => false
_.isMap(value)
value
がMap
オブジェクトとして分類されるかどうかをチェックします。
4.3.0
value
(*): チェックする値。(boolean): value
がマップの場合はtrue
、そうでない場合はfalse
を返します。
_.isMap(new Map);// => true _.isMap(new WeakMap);// => false
_.isMatch(object, source)
object
とsource
の間で部分的な深い比較を実行し、object
に同等のプロパティ値が含まれているかどうかを判断します。
注: このメソッドは、source
が部分的に適用されている場合は_.matches
と同等です。
部分的な比較では、空の配列および空のオブジェクトsource
の値は、それぞれ任意の配列またはオブジェクトの値と一致します。サポートされている値の比較の一覧については、_.isEqual
を参照してください。
3.0.0
object
(Object): 検査するオブジェクト。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])
このメソッドは_.isMatch
に似ていますが、値の比較に使用されるcustomizer
を受け入れる点が異なります。customizer
がundefined
を返した場合、比較は代わりにこのメソッドによって処理されます。customizer
は、5つの引数((objValue, srcValue, index|key, object, source))で呼び出されます。
4.0.0
object
(Object): 検査するオブジェクト。source
(Object): 一致させるプロパティ値のオブジェクト。[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)
value
がNaN
であるかどうかをチェックします。
注: このメソッドは、Number.isNaN
に基づいており、undefined
やその他の数値以外の値に対してtrue
を返すグローバルのisNaN
とは異なります。
0.1.0
value
(*): チェックする値。(boolean): value
がNaN
の場合はtrue
、そうでない場合はfalse
を返します。
_.isNaN(NaN);// => true _.isNaN(new Number(NaN));// => true isNaN(undefined);// => true _.isNaN(undefined);// => false
_.isNative(value)
value
が純粋なネイティブ関数であるかどうかをチェックします。
注意: core-js パッケージが存在する場合、このメソッドはネイティブ関数を確実に検出できません。これは、core-js がこの種の検出を回避するためです。何度も要望があったにもかかわらず、core-js のメンテナは、検出を修正しようとする試みは妨害すると明言しています。そのため、エラーをスローするしか選択肢が残されていません。残念ながら、これは core-js に依存する babel-polyfill のようなパッケージにも影響を与えます。
3.0.0
value
(*): チェックする値。(boolean): value
がネイティブ関数であれば true
、そうでなければ false
を返します。
_.isNative(Array.prototype.push);// => true _.isNative(_);// => false
_.isNil(value)
value
が null
または undefined
であるかを確認します。
4.0.0
value
(*): チェックする値。(boolean): value
が nullish であれば true
、そうでなければ false
を返します。
_.isNil(null);// => true _.isNil(void 0);// => true _.isNil(NaN);// => false
_.isNull(value)
value
が null
であるかを確認します。
0.1.0
value
(*): チェックする値。(boolean): value
が null
であれば true
、そうでなければ false
を返します。
_.isNull(null);// => true _.isNull(void 0);// => false
_.isNumber(value)
value
が Number
のプリミティブまたはオブジェクトとして分類されるかを確認します。
注意: 数値として分類される Infinity
、-Infinity
、および NaN
を除外するには、_.isFinite
メソッドを使用してください。
0.1.0
value
(*): チェックする値。(boolean): value
が数値であれば true
、そうでなければ false
を返します。
_.isNumber(3);// => true _.isNumber(Number.MIN_VALUE);// => true _.isNumber(Infinity);// => true _.isNumber('3');// => false
_.isObject(value)
value
が Object
の言語タイプであるかを確認します。(例: 配列、関数、オブジェクト、正規表現、new Number(0)
、および new String('')
)
0.1.0
value
(*): チェックする値。(boolean): value
がオブジェクトであれば true
、そうでなければ false
を返します。
_.isObject({});// => true _.isObject([1, 2, 3]);// => true _.isObject(_.noop);// => true _.isObject(null);// => false
_.isObjectLike(value)
value
がオブジェクトライクであるかを確認します。値がオブジェクトライクであるとは、null
でなく、かつ typeof
の結果が "object" である場合を指します。
4.0.0
value
(*): チェックする値。(boolean): value
がオブジェクトライクであれば true
、そうでなければ false
を返します。
_.isObjectLike({});// => true _.isObjectLike([1, 2, 3]);// => true _.isObjectLike(_.noop);// => false _.isObjectLike(null);// => false
_.isPlainObject(value)
value
がプレーンオブジェクトであるか、つまり、Object
コンストラクタによって作成されたオブジェクトまたは [[Prototype]]
が null
のオブジェクトであるかを確認します。
0.8.0
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)
value
が RegExp
オブジェクトとして分類されるかを確認します。
0.1.0
value
(*): チェックする値。(boolean): value
が正規表現であれば true
、そうでなければ false
を返します。
_.isRegExp(/abc/);// => true _.isRegExp('/abc/');// => false
_.isSafeInteger(value)
value
がセーフ整数であるかを確認します。整数がセーフであるとは、丸められたアンセーフ整数の結果ではない IEEE-754 倍精度数である場合を指します。
注意: このメソッドは Number.isSafeInteger
に基づいています。
4.0.0
value
(*): チェックする値。(boolean): value
がセーフ整数であれば true
、そうでなければ false
を返します。
_.isSafeInteger(3);// => true _.isSafeInteger(Number.MIN_VALUE);// => false _.isSafeInteger(Infinity);// => false _.isSafeInteger('3');// => false
_.isSet(value)
value
が Set
オブジェクトとして分類されるかを確認します。
4.3.0
value
(*): チェックする値。(boolean): value
がセットであれば true
、そうでなければ false
を返します。
_.isSet(new Set);// => true _.isSet(new WeakSet);// => false
_.isString(value)
value
が String
のプリミティブまたはオブジェクトとして分類されるかを確認します。
0.1.0
value
(*): チェックする値。(boolean): value
が文字列であれば true
、そうでなければ false
を返します。
_.isString('abc');// => true _.isString(1);// => false
_.isSymbol(value)
value
が Symbol
のプリミティブまたはオブジェクトとして分類されるかを確認します。
4.0.0
value
(*): チェックする値。(boolean): value
がシンボルであれば true
、そうでなければ false
を返します。
_.isSymbol(Symbol.iterator);// => true _.isSymbol('abc');// => false
_.isTypedArray(value)
value
が型付き配列として分類されるかを確認します。
3.0.0
value
(*): チェックする値。(boolean): value
が型付き配列であれば true
、そうでなければ false
を返します。
_.isTypedArray(new Uint8Array);// => true _.isTypedArray([]);// => false
_.isUndefined(value)
value
が undefined
であるかを確認します。
0.1.0
value
(*): チェックする値。(boolean): value
が undefined
であれば true
、そうでなければ false
を返します。
_.isUndefined(void 0);// => true _.isUndefined(null);// => false
_.isWeakMap(value)
value
が WeakMap
オブジェクトとして分類されるかを確認します。
4.3.0
value
(*): チェックする値。(boolean): value
が WeakMap であれば true
、そうでなければ false
を返します。
_.isWeakMap(new WeakMap);// => true _.isWeakMap(new Map);// => false
_.isWeakSet(value)
value
が WeakSet
オブジェクトとして分類されるかを確認します。
4.3.0
value
(*): チェックする値。(boolean): value
が WeakSet であれば true
、そうでなければ false
を返します。
_.isWeakSet(new WeakSet);// => true _.isWeakSet(new Set);// => false
_.lt(value, other)
value
が other
より小さいかを確認します。
3.9.0
value
(*): 比較する値。other
(*): 比較するもう一方の値。(boolean): value
が other
より小さければ true
、そうでなければ false
を返します。
_.lt(1, 3);// => true _.lt(3, 3);// => false _.lt(3, 1);// => false
_.lte(value, other)
value
が other
以下であるかを確認します。
3.9.0
value
(*): 比較する値。other
(*): 比較するもう一方の値。(boolean): value
が other
以下であれば true
、そうでなければ false
を返します。
_.lte(1, 3);// => true _.lte(3, 3);// => true _.lte(3, 1);// => false
_.toArray(value)
value
を配列に変換します。
0.1.0
value
(*): 変換する値。(Array): 変換された配列を返します。
_.toArray({ 'a': 1, 'b': 2 });// => [1, 2] _.toArray('abc');// => ['a', 'b', 'c'] _.toArray(1);// => [] _.toArray(null);// => []
_.toFinite(value)
value
を有限数に変換します。
4.12.0
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)
value
を整数に変換します。
注意: このメソッドは ToInteger
に大まかに基づいています。
4.0.0
value
(*): 変換する値。(number): 変換された整数を返します。
_.toInteger(3.2);// => 3 _.toInteger(Number.MIN_VALUE);// => 0 _.toInteger(Infinity);// => 1.7976931348623157e+308 _.toInteger('3.2');// => 3
_.toLength(value)
value
を配列ライクオブジェクトの長さとして使用するのに適した整数に変換します。
注意: このメソッドは ToLength
に基づいています。
4.0.0
value
(*): 変換する値。(number): 変換された整数を返します。
_.toLength(3.2);// => 3 _.toLength(Number.MIN_VALUE);// => 0 _.toLength(Infinity);// => 4294967295 _.toLength('3.2');// => 3
_.toNumber(value)
value
を数値に変換します。
4.0.0
value
(*): 処理する値。(number): 数値を返します。
_.toNumber(3.2);// => 3.2 _.toNumber(Number.MIN_VALUE);// => 5e-324 _.toNumber(Infinity);// => Infinity _.toNumber('3.2');// => 3.2
_.toPlainObject(value)
value
をプレーンオブジェクトに変換し、value
の継承された列挙可能な文字列キープロパティをプレーンオブジェクトの独自のプロパティにフラット化します。
3.0.0
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)
value
をセーフ整数に変換します。セーフ整数は、正しく比較および表現できます。
4.0.0
value
(*): 変換する値。(number): 変換された整数を返します。
_.toSafeInteger(3.2);// => 3 _.toSafeInteger(Number.MIN_VALUE);// => 0 _.toSafeInteger(Infinity);// => 9007199254740991 _.toSafeInteger('3.2');// => 3
“Math” メソッド
_.add(augend, addend)
2 つの数値を加算します。
3.4.0
augend
(number): 加算における最初の数値。addend
(number): 加算における 2 番目の数値。(number): 合計を返します。
_.add(6, 4);// => 10
_.ceil(number, [precision=0])
number
を precision
に切り上げて計算します。
3.10.0
number
(number): 切り上げる数値。[precision=0]
(number): 切り上げる精度。(number): 切り上げられた数値を返します。
_.ceil(4.006);// => 5 _.ceil(6.004, 2);// => 6.01 _.ceil(6040, -2);// => 6100
_.divide(dividend, divisor)
2 つの数値を割ります。
4.7.0
dividend
(number): 除算における最初の数値。divisor
(number): 除算における 2 番目の数値。(number): 商を返します。
_.divide(6, 4);// => 1.5
_.floor(number, [precision=0])
number
を precision
に切り捨てて計算します。
3.10.0
number
(number): 切り捨てる数値。[precision=0]
(number): 切り捨てる精度。(number): 切り捨てられた数値を返します。
_.floor(4.006);// => 4 _.floor(0.046, 2);// => 0.04 _.floor(4060, -2);// => 4000
_.max(array)
array
の最大値を計算します。array
が空または falsy の場合、undefined
が返されます。
0.1.0
array
(Array): 反復処理する配列。(*): 最大値を返します。
_.max([4, 2, 8, 6]);// => 8 _.max([]);// => undefined
_.maxBy(array, [iteratee=_.identity])
このメソッドは、_.max
と似ていますが、array
の各要素に対して呼び出され、値をランク付けするための基準を生成する iteratee
を受け入れる点が異なります。イテレータは1つの引数 (value) で呼び出されます。
4.0.0
array
(Array): 反復処理する配列。[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)
array
内の値の平均を計算します。
4.0.0
array
(Array): 反復処理する配列。(number): 平均を返します。
_.mean([4, 2, 8, 6]);// => 5
_.meanBy(array, [iteratee=_.identity])
このメソッドは、_.mean
と似ていますが、array
の各要素に対して呼び出され、平均化される値を生成する iteratee
を受け入れる点が異なります。イテレータは1つの引数 (value) で呼び出されます。
4.7.0
array
(Array): 反復処理する配列。[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)
array
の最小値を計算します。array
が空または falsy の場合、undefined
が返されます。
0.1.0
array
(Array): 反復処理する配列。(*): 最小値を返します。
_.min([4, 2, 8, 6]);// => 2 _.min([]);// => undefined
_.minBy(array, [iteratee=_.identity])
このメソッドは、_.min
と似ていますが、array
の各要素に対して呼び出され、値をランク付けするための基準を生成する iteratee
を受け入れる点が異なります。イテレータは1つの引数 (value) で呼び出されます。
4.0.0
array
(Array): 反復処理する配列。[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)
2つの数値を乗算します。
4.7.0
multiplier
(number): 乗算における最初の数値。multiplicand
(number): 乗算における2番目の数値。(number): 積を返します。
_.multiply(6, 4);// => 24
_.round(number, [precision=0])
number
を precision
に丸めた値を計算します。
3.10.0
number
(number): 丸める数値。[precision=0]
(number): 丸める精度。(number): 丸められた数値を返します。
_.round(4.006);// => 4 _.round(4.006, 2);// => 4.01 _.round(4060, -2);// => 4100
_.subtract(minuend, subtrahend)
2つの数値を減算します。
4.0.0
minuend
(number): 減算における最初の数値。subtrahend
(number): 減算における2番目の数値。(number): 差を返します。
_.subtract(6, 4);// => 2
_.sum(array)
array
内の値の合計を計算します。
3.4.0
array
(Array): 反復処理する配列。(number): 合計を返します。
_.sum([4, 2, 8, 6]);// => 20
_.sumBy(array, [iteratee=_.identity])
このメソッドは、_.sum
と似ていますが、array
の各要素に対して呼び出され、合計される値を生成する iteratee
を受け入れる点が異なります。イテレータは1つの引数 (value) で呼び出されます。
4.0.0
array
(Array): 反復処理する配列。[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)
number
を包括的な lower
および upper
の境界内にクランプします。
4.0.0
number
(number): クランプする数値。[lower]
(number): 下限。upper
(number): 上限。(number): クランプされた数値を返します。
_.clamp(-10, -5, 5);// => -5 _.clamp(10, -5, 5);// => 5
_.inRange(number, [start=0], end)
n
が start
から end
(ただし、end
は含まない)の間にあるかどうかを確認します。end
が指定されていない場合は、start
に設定され、start
は 0
に設定されます。start
が end
より大きい場合、負の範囲をサポートするためにパラメータが交換されます。
3.3.0
number
(number): チェックする数値。[start=0]
(number): 範囲の開始。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])
包括的な lower
および upper
の境界の間で乱数を生成します。引数が1つだけ指定された場合、0
から指定された数値の間の数値が返されます。floating
が true
の場合、または lower
または upper
のいずれかが浮動小数点数の場合、整数ではなく浮動小数点数が返されます。
注意: JavaScript は浮動小数点数の値を解決するために IEEE-754 標準に従っており、予期しない結果が生じる可能性があります。
0.7.0
[lower=0]
(number): 下限。[upper=1]
(number): 上限。[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])
ソースオブジェクトの独自の列挙可能な文字列キー付きプロパティを、宛先オブジェクトに割り当てます。ソースオブジェクトは左から右に適用されます。後続のソースは、前のソースのプロパティの割り当てを上書きします。
注意: このメソッドは object
を変更し、Object.assign
に緩く基づいています。
0.10.0
object
(Object): 宛先オブジェクト。[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])
このメソッドは、_.assign
と似ていますが、独自のソースプロパティと継承されたソースプロパティを反復処理する点が異なります。
注意: このメソッドは object
を変更します。
4.0.0
_.extend
object
(Object): 宛先オブジェクト。[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])
このメソッドは、_.assignIn
と似ていますが、割り当てられた値を生成するために呼び出される customizer
を受け入れる点が異なります。customizer
が undefined
を返した場合、割り当てはメソッドによって処理されます。customizer
は、5つの引数 (objValue, srcValue, key, object, source) で呼び出されます。
注意: このメソッドは object
を変更します。
4.0.0
_.extendWith
object
(Object): 宛先オブジェクト。sources
(...Object): ソースオブジェクト。[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])
このメソッドは、_.assign
と似ていますが、割り当てられた値を生成するために呼び出される customizer
を受け入れる点が異なります。customizer
が undefined
を返した場合、割り当てはメソッドによって処理されます。customizer
は、5つの引数 (objValue, srcValue, key, object, source) で呼び出されます。
注意: このメソッドは object
を変更します。
4.0.0
object
(Object): 宛先オブジェクト。sources
(...Object): ソースオブジェクト。[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])
object
の paths
に対応する値の配列を作成します。
1.0.0
object
(Object): 反復処理するオブジェクト。[paths]
(...(string|string[])): ピックするプロパティパス。(Array): ピックされた値を返します。
var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; _.at(object, ['a[0].b.c', 'a[1]']);// => [3, 4]
_.create(prototype, [properties])
prototype
オブジェクトから継承するオブジェクトを作成します。properties
オブジェクトが指定されている場合は、独自の列挙可能な文字列キー付きプロパティが作成されたオブジェクトに割り当てられます。
2.3.0
prototype
(Object): 継承するオブジェクト。[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])
ソースオブジェクトの独自のおよび継承された列挙可能な文字列キー付きプロパティを、undefined
に解決されるすべての宛先プロパティの宛先オブジェクトに割り当てます。ソースオブジェクトは左から右に適用されます。プロパティが設定されると、同じプロパティの追加の値は無視されます。
注意: このメソッドは object
を変更します。
0.1.0
object
(Object): 宛先オブジェクト。[sources]
(...Object): ソースオブジェクト。(Object): object
を返します。
_.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });// => { 'a': 1, 'b': 2 }
_.defaultsDeep(object, [sources])
このメソッドは、_.defaults
と似ていますが、デフォルトのプロパティを再帰的に割り当てる点が異なります。
注意: このメソッドは object
を変更します。
3.10.0
object
(Object): 宛先オブジェクト。[sources]
(...Object): ソースオブジェクト。(Object): object
を返します。
_.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });// => { 'a': { 'b': 2, 'c': 3 } }
_.findKey(object, [predicate=_.identity])
このメソッドは、_.find
と似ていますが、要素自体ではなく、最初に predicate
が truthy を返す要素のキーを返す点が異なります。
1.1.0
object
(Object): 検査するオブジェクト。[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])
このメソッドは、_.findKey
と似ていますが、コレクションの要素を逆順に反復処理する点が異なります。
2.0.0
object
(Object): 検査するオブジェクト。[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])
オブジェクトの独自および継承された列挙可能な文字列キー付きプロパティを反復処理し、各プロパティに対して iteratee
を呼び出します。イテレータは、3つの引数 (value, key, object) で呼び出されます。イテレータ関数は、明示的に false
を返すことで、反復処理を早期に終了できます。
0.3.0
object
(Object): 反復処理するオブジェクト。[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])
このメソッドは、_.forIn
と似ていますが、object
のプロパティを逆順に反復処理します。
2.0.0
object
(Object): 反復処理するオブジェクト。[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])
オブジェクトの列挙可能な独自の文字列キー付きプロパティを反復処理し、各プロパティに対して iteratee
を呼び出します。イテレータは 3 つの引数 ((value, key, object)) で呼び出されます。イテレータ関数は、false
を明示的に返すことで、早期に反復処理を終了できます。
0.3.0
object
(Object): 反復処理するオブジェクト。[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])
このメソッドは、_.forOwn
と似ていますが、object
のプロパティを逆順に反復処理します。
2.0.0
object
(Object): 反復処理するオブジェクト。[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)
object
の列挙可能な独自のプロパティから関数プロパティ名の配列を作成します。
0.1.0
object
(Object): 検査するオブジェクト。(配列): 関数名を返します。
function Foo() { this.a = _.constant('a'); this.b = _.constant('b');} Foo.prototype.c = _.constant('c'); _.functions(new Foo);// => ['a', 'b']
_.functionsIn(object)
object
の列挙可能な独自のプロパティと継承されたプロパティから関数プロパティ名の配列を作成します。
4.0.0
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])
object
の path
にある値を取得します。解決された値が undefined
の場合は、代わりに defaultValue
が返されます。
3.7.0
object
(オブジェクト): クエリを実行するオブジェクト。path
(配列|文字列): 取得するプロパティのパス。[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)
path
が object
の直接のプロパティであるかどうかを確認します。
0.1.0
object
(オブジェクト): クエリを実行するオブジェクト。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)
path
が object
の直接または継承されたプロパティであるかどうかを確認します。
4.0.0
object
(オブジェクト): クエリを実行するオブジェクト。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)
object
のキーと値を反転したオブジェクトを作成します。object
に重複する値が含まれている場合、後続の値は以前の値のプロパティ割り当てを上書きします。
0.7.0
object
(オブジェクト): 反転するオブジェクト。(オブジェクト): 新しい反転されたオブジェクトを返します。
var object = { 'a': 1, 'b': 2, 'c': 1 }; _.invert(object);// => { '1': 'c', '2': 'b' }
_.invertBy(object, [iteratee=_.identity])
このメソッドは _.invert
と似ていますが、反転されたオブジェクトは、object
の各要素を iteratee
を介して実行した結果から生成されます。反転された各キーの対応する反転された値は、反転された値を生成する責任のあるキーの配列です。イテレータは 1 つの引数 ((value)) で呼び出されます。
4.1.0
object
(オブジェクト): 反転するオブジェクト。[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])
object
の path
にあるメソッドを呼び出します。
4.0.0
object
(オブジェクト): クエリを実行するオブジェクト。path
(配列|文字列): 呼び出すメソッドのパス。[args]
(...*): メソッドを呼び出すための引数。(*): 呼び出されたメソッドの結果を返します。
var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; _.invoke(object, 'a[0].b.c.slice', 1, 3);// => [2, 3]
_.keys(object)
object
の列挙可能な独自のプロパティ名の配列を作成します。
注: オブジェクト以外の値はオブジェクトに強制変換されます。詳細については、ES 仕様 を参照してください。
0.1.0
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)
object
の列挙可能な独自のプロパティ名と継承されたプロパティ名の配列を作成します。
注: オブジェクト以外の値はオブジェクトに強制変換されます。
3.0.0
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])
_.mapValues
の反対です。このメソッドは、object
と同じ値を持ち、object
の各列挙可能な独自の文字列キー付きプロパティを iteratee
を介して実行して生成されたキーを持つオブジェクトを作成します。イテレータは 3 つの引数 ((value, key, object)) で呼び出されます。
3.8.0
object
(Object): 反復処理するオブジェクト。[iteratee=_.identity]
(Function): 反復処理ごとに呼び出される関数。(オブジェクト): 新しいマップされたオブジェクトを返します。
_.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { return key + value;});// => { 'a1': 1, 'b2': 2 }
_.mapValues(object, [iteratee=_.identity])
object
と同じキーを持ち、object
の列挙可能な独自の文字列キー付きプロパティをそれぞれ iteratee
を介して実行して生成された値を持つオブジェクトを作成します。イテレータは 3 つの引数で呼び出されます
(value, key, object).
2.4.0
object
(Object): 反復処理するオブジェクト。[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])
このメソッドは _.assign
と似ていますが、ソースオブジェクトの列挙可能な独自の文字列キー付きプロパティと継承されたプロパティを宛先オブジェクトに再帰的にマージする点が異なります。宛先値が存在する場合、undefined
に解決されるソースプロパティはスキップされます。配列とプレーンオブジェクトのプロパティは再帰的にマージされます。その他のオブジェクトと値の型は、割り当てによって上書きされます。ソースオブジェクトは左から右に適用されます。後続のソースは、以前のソースのプロパティ割り当てを上書きします。
注意: このメソッドは object
を変更します。
0.5.0
object
(Object): 宛先オブジェクト。[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)
このメソッドは _.merge
と似ていますが、宛先プロパティとソースプロパティのマージされた値を生成するために呼び出される customizer
を受け入れる点が異なります。customizer
が undefined
を返す場合、代わりにメソッドによってマージが処理されます。customizer
は 6 つの引数で呼び出されます
(objValue, srcValue, key, object, source, stack).
注意: このメソッドは object
を変更します。
4.0.0
object
(Object): 宛先オブジェクト。sources
(...Object): ソースオブジェクト。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])
_.pick
の反対です。このメソッドは、省略されていない object
の列挙可能な独自のプロパティと継承されたプロパティパスで構成されるオブジェクトを作成します。
注: このメソッドは _.pick
よりもかなり遅いです。
0.1.0
object
(オブジェクト): ソースオブジェクト。[paths]
(...(文字列|文字列配列)): 省略するプロパティパス。(Object): 新しいオブジェクトを返します。
var object = { 'a': 1, 'b': '2', 'c': 3 }; _.omit(object, ['a', 'c']);// => { 'b': '2' }
_.omitBy(object, [predicate=_.identity])
_.pickBy
の反対です。このメソッドは、predicate
が真理値を返さない object
の列挙可能な独自の文字列キー付きプロパティと継承されたプロパティで構成されるオブジェクトを作成します。述語は 2 つの引数 ((value, key)) で呼び出されます。
4.0.0
object
(オブジェクト): ソースオブジェクト。[predicate=_.identity]
(関数): プロパティごとに呼び出される関数。(Object): 新しいオブジェクトを返します。
var object = { 'a': 1, 'b': '2', 'c': 3 }; _.omitBy(object, _.isNumber);// => { 'b': '2' }
_.pick(object, [paths])
選択された object
プロパティで構成されるオブジェクトを作成します。
0.1.0
object
(オブジェクト): ソースオブジェクト。[paths]
(...(string|string[])): ピックするプロパティパス。(Object): 新しいオブジェクトを返します。
var object = { 'a': 1, 'b': '2', 'c': 3 }; _.pick(object, ['a', 'c']);// => { 'a': 1, 'c': 3 }
_.pickBy(object, [predicate=_.identity])
predicate
が真理値を返す object
プロパティで構成されるオブジェクトを作成します。述語は 2 つの引数 ((value, key)) で呼び出されます。
4.0.0
object
(オブジェクト): ソースオブジェクト。[predicate=_.identity]
(関数): プロパティごとに呼び出される関数。(Object): 新しいオブジェクトを返します。
var object = { 'a': 1, 'b': '2', 'c': 3 }; _.pickBy(object, _.isNumber);// => { 'a': 1, 'c': 3 }
_.result(object, path, [defaultValue])
このメソッドは _.get
と似ていますが、解決された値が関数の場合、親オブジェクトの this
バインディングで呼び出され、その結果が返される点が異なります。
0.1.0
object
(オブジェクト): クエリを実行するオブジェクト。path
(配列|文字列): 解決するプロパティのパス。[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)
object
の path
に値を設定します。path
の一部が存在しない場合は作成されます。配列は不足しているインデックスプロパティに対して作成され、オブジェクトはその他のすべての不足しているプロパティに対して作成されます。path
の作成をカスタマイズするには _.setWith
を使用してください。
注意: このメソッドは object
を変更します。
3.7.0
object
(オブジェクト): 変更するオブジェクト。path
(配列|文字列): 設定するプロパティのパス。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])
このメソッドは _.set
と似ていますが、path
のオブジェクトを生成するために呼び出される customizer
を受け入れる点が異なります。customizer
が undefined
を返す場合、代わりにメソッドによってパスの作成が処理されます。customizer
は 3 つの引数 ((nsValue, key, nsObject)) で呼び出されます。
注意: このメソッドは object
を変更します。
4.0.0
object
(オブジェクト): 変更するオブジェクト。path
(配列|文字列): 設定するプロパティのパス。value
(*): 設定する値。[customizer]
(Function): 割り当てられた値をカスタマイズする関数。(Object): object
を返します。
var object = {}; _.setWith(object, '[0][1]', 'a', Object);// => { '0': { '1': 'a' } }
_.toPairs(object)
_.fromPairs
で使用できる、object
の列挙可能な独自の文字列キーと値のペアの配列を作成します。object
がマップまたはセットの場合、そのエントリが返されます。
4.0.0
_.entries
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)
_.fromPairs
で使用できる、object
の列挙可能な独自の文字列キーと値のペアと継承されたペアの配列を作成します。object
がマップまたはセットの場合、そのエントリが返されます。
4.0.0
_.entriesIn
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])
_.reduce
の代替手段です。このメソッドは、object
を新しい accumulator
オブジェクトに変換します。これは、列挙可能な独自の文字列キー付きプロパティをそれぞれ iteratee
を介して実行した結果で、各呼び出しは accumulator
オブジェクトを変化させる可能性があります。accumulator
が提供されない場合、同じ [[Prototype]]
を持つ新しいオブジェクトが使用されます。イテレータは 4 つの引数 ((accumulator, value, key, object)) で呼び出されます。イテレータ関数は、false
を明示的に返すことで、早期に反復処理を終了できます。
1.3.0
object
(Object): 反復処理するオブジェクト。[iteratee=_.identity]
(Function): 反復処理ごとに呼び出される関数。[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)
object
の path
にあるプロパティを削除します。
注意: このメソッドは object
を変更します。
4.0.0
object
(オブジェクト): 変更するオブジェクト。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)
このメソッドは、設定する値を生成するために updater
を受け入れる点を除いて _.set
と似ています。path
の作成をカスタマイズするには _.updateWith
を使用します。updater
は1つの引数で呼び出されます: (value)。
注意: このメソッドは object
を変更します。
4.6.0
object
(オブジェクト): 変更するオブジェクト。path
(配列|文字列): 設定するプロパティのパス。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])
このメソッドは、path
のオブジェクトを生成するために呼び出される customizer
を受け入れる点を除いて _.update
と似ています。customizer
が undefined
を返す場合、パスの作成はメソッドによって処理されます。customizer
は3つの引数で呼び出されます: (nsValue, key, nsObject)。
注意: このメソッドは object
を変更します。
4.6.0
object
(オブジェクト): 変更するオブジェクト。path
(配列|文字列): 設定するプロパティのパス。updater
(Function): 更新された値を生成する関数。[customizer]
(Function): 割り当てられた値をカスタマイズする関数。(Object): object
を返します。
var object = {}; _.updateWith(object, '[0][1]', _.constant('a'), Object);// => { '0': { '1': 'a' } }
_.values(object)
object
の自身の列挙可能な文字列キープロパティの値の配列を作成します。
注: オブジェクト以外の値はオブジェクトに強制変換されます。
0.1.0
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']
“Seq” メソッド
_(value)
暗黙的なメソッドチェーンシーケンスを可能にするために value
をラップする lodash
オブジェクトを作成します。配列、コレクション、および関数を操作して返すメソッドは、チェーン化できます。単一の値を取得するか、プリミティブ値を返す可能性のあるメソッドは、自動的にチェーンシーケンスを終了し、ラップされていない値を返します。それ以外の場合、値は _#value
でラップ解除する必要があります。_#value
でラップ解除する必要がある明示的なチェーンシーケンスは、_.chain
を使用して有効にできます。
チェーン化されたメソッドの実行は遅延されます。つまり、_#value
が暗黙的または明示的に呼び出されるまで延期されます。
遅延評価により、いくつかのメソッドがショートカットフュージョンをサポートできます。ショートカットフュージョンは、イテレータ呼び出しをマージする最適化です。これにより、中間配列の作成が回避され、イテレータの実行回数を大幅に削減できます。チェーンシーケンスのセクションが配列に適用され、イテレータが1つの引数のみを受け入れる場合、そのセクションはショートカットフュージョンの対象となります。セクションがショートカットフュージョンの対象となるかどうかのヒューリスティックは変更される可能性があります。_#value
メソッドがビルドに直接的または間接的に含まれている限り、カスタムビルドでチェーン化がサポートされます。
lodash メソッドに加えて、ラッパーには Array
および String
メソッドがあります。
ラッパーの Array
メソッドはconcat
、join
、pop
、push
、shift
、sort
、splice
、および unshift
ラッパーの String
メソッドはreplace
および split
ショートカットフュージョンをサポートするラッパーメソッドはat
、compact
、drop
、dropRight
、dropWhile
、filter
、find
、findLast
、head
、initial
、last
、map
、reject
、reverse
、slice
、tail
、take
、takeRight
、takeRightWhile
、takeWhile
、および toArray
チェーン可能なラッパーメソッドはafter
、ary
、assign
、assignIn
、assignInWith
、assignWith
、at
、before
、bind
、bindAll
、bindKey
、castArray
、chain
、chunk
、commit
、compact
、concat
、conforms
、constant
、countBy
、create
、curry
、debounce
、defaults
、defaultsDeep
、defer
、delay
、difference
、differenceBy
、differenceWith
、drop
、dropRight
、dropRightWhile
、dropWhile
、extend
、extendWith
、fill
、filter
、flatMap
、flatMapDeep
、flatMapDepth
、flatten
、flattenDeep
、flattenDepth
、flip
、flow
、flowRight
、fromPairs
、functions
、functionsIn
、groupBy
、initial
、intersection
、intersectionBy
、intersectionWith
、invert
、invertBy
、invokeMap
、iteratee
、keyBy
、keys
、keysIn
、map
、mapKeys
、mapValues
、matches
、matchesProperty
、memoize
、merge
、mergeWith
、method
、methodOf
、mixin
、negate
、nthArg
、omit
、omitBy
、once
、orderBy
、over
、overArgs
、overEvery
、overSome
、partial
、partialRight
、partition
、pick
、pickBy
、plant
、property
、propertyOf
、pull
、pullAll
、pullAllBy
、pullAllWith
、pullAt
、push
、range
、rangeRight
、rearg
、reject
、remove
、rest
、reverse
、sampleSize
、set
、setWith
、shuffle
、slice
、sort
、sortBy
、splice
、spread
、tail
、take
、takeRight
、takeRightWhile
、takeWhile
、tap
、throttle
、thru
、toArray
、toPairs
、toPairsIn
、toPath
、toPlainObject
、transform
、unary
、union
、unionBy
、unionWith
、uniq
、uniqBy
、uniqWith
、unset
、unshift
、unzip
、unzipWith
、update
、updateWith
、values
、valuesIn
、without
、wrap
、xor
、xorBy
、xorWith
、zip
、zipObject
、zipObjectDeep
、および zipWith
デフォルトでチェーン化されないラッパーメソッドはadd
、attempt
、camelCase
、capitalize
、ceil
、clamp
、clone
、cloneDeep
、cloneDeepWith
、cloneWith
、conformsTo
、deburr
、defaultTo
、divide
、each
、eachRight
、endsWith
、eq
、escape
、escapeRegExp
、every
、find
、findIndex
、findKey
、findLast
、findLastIndex
、findLastKey
、first
、floor
、forEach
、forEachRight
、forIn
、forInRight
、forOwn
、forOwnRight
、get
、gt
、gte
、has
、hasIn
、head
、identity
、includes
、indexOf
、inRange
、invoke
、isArguments
、isArray
、isArrayBuffer
、isArrayLike
、isArrayLikeObject
、isBoolean
、isBuffer
、isDate
、isElement
、isEmpty
、isEqual
、isEqualWith
、isError
、isFinite
、isFunction
、isInteger
、isLength
、isMap
、isMatch
、isMatchWith
、isNaN
、isNative
、isNil
、isNull
、isNumber
、isObject
、isObjectLike
、isPlainObject
、isRegExp
、isSafeInteger
、isSet
、isString
、isUndefined
、isTypedArray
、isWeakMap
、isWeakSet
、join
、kebabCase
、last
、lastIndexOf
、lowerCase
、lowerFirst
、lt
、lte
、max
、maxBy
、mean
、meanBy
、min
、minBy
、multiply
、noConflict
、noop
、now
、nth
、pad
、padEnd
、padStart
、parseInt
、pop
、random
、reduce
、reduceRight
、repeat
、result
、round
、runInContext
、sample
、shift
、size
、snakeCase
、some
、sortedIndex
、sortedIndexBy
、sortedLastIndex
、sortedLastIndexBy
、startCase
、startsWith
、stubArray
、stubFalse
、stubObject
、stubString
、stubTrue
、subtract
、sum
、sumBy
、template
、times
、toFinite
、toInteger
、toJSON
、toLength
、toLower
、toNumber
、toSafeInteger
、toString
、toUpper
、trim
、trimEnd
、trimStart
、truncate
、unescape
、uniqueId
、upperCase
、upperFirst
、value
、および words
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
でラップ解除する必要があります。
1.3.0
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)。このメソッドの目的は、中間結果を変更するためにメソッドチェーンシーケンスに「タップイン」することです。
0.1.0
value
(*): interceptor
に提供する値。interceptor
(Function): 呼び出す関数。(*): value
を返します。
_([1, 2, 3]) .tap(function(array) {// Mutate input array. array.pop(); }) .reverse() .value();// => [2, 1]
_.thru(value, interceptor)
このメソッドは _.tap
と似ていますが、interceptor
の結果を返します。このメソッドの目的は、メソッドチェーンシーケンスの中間結果を置き換える値を「パススルー」することです。
3.0.0
value
(*): interceptor
に提供する値。interceptor
(Function): 呼び出す関数。(*): interceptor
の結果を返します。
_(' abc ') .chain() .trim() .thru(function(value) { return [value]; }) .value();// => ['abc']
_.prototype[Symbol.iterator]()
ラッパーをイテラブルにすることを有効にします。
4.0.0
(Object): ラッパーオブジェクトを返します。
var wrapped = _([1, 2]); wrapped[Symbol.iterator]() === wrapped;// => true Array.from(wrapped);// => [1, 2]
_.prototype.at([paths])
このメソッドは、_.at
のラッパーバージョンです。
1.0.0
[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
ラッパーインスタンスを作成します。
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()
チェーンシーケンスを実行し、ラップされた結果を返します。
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()
イテレータープロトコルに従って、ラップされたオブジェクトの次の値を取得します。
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
をラップされた値として配置します。
3.2.0
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
のラッパーバージョンです。
注: このメソッドはラップされた配列を変更します。
0.1.0
(Object): 新しい lodash
ラッパーインスタンスを返します。
var array = [1, 2, 3]; _(array).reverse().value()// => [3, 2, 1] console.log(array);// => [3, 2, 1]
“String” メソッド
_.camelCase([string=''])
string
をキャメルケースに変換します。
3.0.0
[string='']
(string): 変換する文字列。(string): キャメルケースに変換された文字列を返します。
_.camelCase('Foo Bar');// => 'fooBar' _.camelCase('--foo-bar--');// => 'fooBar' _.camelCase('__FOO_BAR__');// => 'fooBar'
_.capitalize([string=''])
string
の最初の文字を大文字に、残りの文字を小文字に変換します。
3.0.0
[string='']
(string): 大文字にする文字列。(string): 大文字に変換された文字列を返します。
_.capitalize('FRED');// => 'Fred'
_.deburr([string=''])
string
から、Latin-1 Supplement および Latin Extended-A の文字を基本的なラテン文字に変換し、結合分音記号を削除することにより、string
を除去します。
3.0.0
[string='']
(string): デバーする文字列。(string): デバーされた文字列を返します。
_.deburr('déjà vu');// => 'deja vu'
_.endsWith([string=''], [target], [position=string.length])
string
が指定されたターゲット文字列で終わるかどうかを確認します。
3.0.0
[string='']
(string): 検査する文字列。[target]
(string): 検索する文字列。[position=string.length]
(number): 検索する位置。(boolean): string
が target
で終わる場合は true
、そうでない場合は false
を返します。
_.endsWith('abc', 'c');// => true _.endsWith('abc', 'b');// => false _.endsWith('abc', 'b', 2);// => true
_.escape([string=''])
string
内の文字 "&", "<", ">", '"', および "'" を、対応する HTML エンティティに変換します。
注: 他の文字はエスケープされません。追加の文字をエスケープするには、he のようなサードパーティライブラリを使用してください。
">" 文字は対称性のためにエスケープされますが、">" や "/" のような文字はHTMLではエスケープする必要はなく、タグや引用符で囲まれていない属性値の一部でない限り特別な意味を持ちません。詳しくは、Mathias Bynens の記事 (「半関連の豆知識」の下) を参照してください。
HTML を扱う場合は、XSS ベクトルを減らすために、常に属性値を引用符で囲む必要があります。
0.1.0
[string='']
(string): エスケープする文字列。(string): エスケープされた文字列を返します。
_.escape('fred, barney, & pebbles');// => 'fred, barney, & pebbles'
_.escapeRegExp([string=''])
string
内の RegExp
の特殊文字 "^", "$", "", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", および "|" をエスケープします。
3.0.0
[string='']
(string): エスケープする文字列。(string): エスケープされた文字列を返します。
_.escapeRegExp('[lodash](https://lodash.dokyumento.jp/)');// => '\[lodash\]\(https://lodash\.com/\)'
_.kebabCase([string=''])
string
をケバブケースに変換します。
3.0.0
[string='']
(string): 変換する文字列。(string): ケバブケースに変換された文字列を返します。
_.kebabCase('Foo Bar');// => 'foo-bar' _.kebabCase('fooBar');// => 'foo-bar' _.kebabCase('__FOO_BAR__');// => 'foo-bar'
_.lowerCase([string=''])
スペースで区切られた単語として、string
を小文字に変換します。
4.0.0
[string='']
(string): 変換する文字列。(string): 小文字に変換された文字列を返します。
_.lowerCase('--Foo-Bar--');// => 'foo bar' _.lowerCase('fooBar');// => 'foo bar' _.lowerCase('__FOO_BAR__');// => 'foo bar'
_.lowerFirst([string=''])
string
の最初の文字を小文字に変換します。
4.0.0
[string='']
(string): 変換する文字列。(string): 変換された文字列を返します。
_.lowerFirst('Fred');// => 'fred' _.lowerFirst('FRED');// => 'fRED'
_.pad([string=''], [length=0], [chars=' '])
string
が length
よりも短い場合、左側と右側にパディングします。パディング文字は length
で均等に分割できない場合は切り捨てられます。
3.0.0
[string='']
(string): パディングする文字列。[length=0]
(number): パディングの長さ。[chars=' ']
(string): パディングとして使用される文字列。(string): パディングされた文字列を返します。
_.pad('abc', 8);// => ' abc ' _.pad('abc', 8, '_-');// => '_-abc_-_' _.pad('abc', 3);// => 'abc'
_.padEnd([string=''], [length=0], [chars=' '])
string
が length
よりも短い場合、右側にパディングします。パディング文字は length
を超える場合は切り捨てられます。
4.0.0
[string='']
(string): パディングする文字列。[length=0]
(number): パディングの長さ。[chars=' ']
(string): パディングとして使用される文字列。(string): パディングされた文字列を返します。
_.padEnd('abc', 6);// => 'abc ' _.padEnd('abc', 6, '_-');// => 'abc_-_' _.padEnd('abc', 3);// => 'abc'
_.padStart([string=''], [length=0], [chars=' '])
string
が length
よりも短い場合、左側にパディングします。パディング文字は length
を超える場合は切り捨てられます。
4.0.0
[string='']
(string): パディングする文字列。[length=0]
(number): パディングの長さ。[chars=' ']
(string): パディングとして使用される文字列。(string): パディングされた文字列を返します。
_.padStart('abc', 6);// => ' abc' _.padStart('abc', 6, '_-');// => '_-_abc' _.padStart('abc', 3);// => 'abc'
_.parseInt(string, [radix=10])
string
を指定された基数の整数に変換します。radix
が undefined
または 0
の場合、value
が16進数でない限り、基数 10
が使用されます。その場合は基数 16
が使用されます。
注: このメソッドは parseInt
のES5 実装に準拠しています。
1.1.0
string
(string): 変換する文字列。[radix=10]
(number): value
を解釈する基数。(number): 変換された整数を返します。
_.parseInt('08');// => 8 _.map(['6', '08', '10'], _.parseInt);// => [6, 8, 10]
_.repeat([string=''], [n=1])
指定された文字列を n
回繰り返します。
3.0.0
[string='']
(string): 繰り返す文字列。[n=1]
(number): 文字列を繰り返す回数。(string): 繰り返された文字列を返します。
_.repeat('*', 3);// => '***' _.repeat('abc', 2);// => 'abcabc' _.repeat('abc', 0);// => ''
_.replace([string=''], pattern, replacement)
string
内の pattern
に一致するものを replacement
に置き換えます。
注: このメソッドは String#replace
に基づいています。
4.0.0
[string='']
(string): 変更する文字列。pattern
(RegExp|string): 置き換えるパターン。replacement
(Function|string): マッチの置換。(string): 変更された文字列を返します。
_.replace('Hi Fred', 'Fred', 'Barney');// => 'Hi Barney'
_.snakeCase([string=''])
string
をスネークケースに変換します。
3.0.0
[string='']
(string): 変換する文字列。(string): スネークケースに変換された文字列を返します。
_.snakeCase('Foo Bar');// => 'foo_bar' _.snakeCase('fooBar');// => 'foo_bar' _.snakeCase('--FOO-BAR--');// => 'foo_bar'
_.split([string=''], separator, [limit])
string
を separator
で分割します。
注: このメソッドは String#split
に基づいています。
4.0.0
[string='']
(string): 分割する文字列。separator
(RegExp|string): 分割するためのセパレータパターン。[limit]
(number): 結果を切り詰める長さ。(Array): 文字列のセグメントを返します。
_.split('a-b-c', '-', 2);// => ['a', 'b']
_.startCase([string=''])
string
をスタートケースに変換します。
3.1.0
[string='']
(string): 変換する文字列。(string): スタートケースに変換された文字列を返します。
_.startCase('--foo-bar--');// => 'Foo Bar' _.startCase('fooBar');// => 'Foo Bar' _.startCase('__FOO_BAR__');// => 'FOO BAR'
_.startsWith([string=''], [target], [position=0])
string
が指定されたターゲット文字列で始まるかどうかを確認します。
3.0.0
[string='']
(string): 検査する文字列。[target]
(string): 検索する文字列。[position=0]
(number): 検索を開始する位置。(boolean): string
が target
で始まる場合は true
、そうでない場合は false
を返します。
_.startsWith('abc', 'a');// => true _.startsWith('abc', 'b');// => false _.startsWith('abc', 'b', 1);// => true
_.template([string=''], [options={}])
"interpolate" デリミターでデータプロパティを補間し、"escape" デリミターで HTML エスケープされたデータプロパティを補間し、"evaluate" デリミターで JavaScript を実行できるコンパイル済みテンプレート関数を作成します。データプロパティは、テンプレート内でフリー変数としてアクセスできます。設定オブジェクトが指定されている場合、_.templateSettings
の値よりも優先されます。
注: 開発ビルドでは、_.template
はデバッグを容易にするためにsourceURLsを利用しています。
テンプレートの事前コンパイルの詳細については、lodash のカスタムビルドのドキュメントを参照してください。
Chrome 拡張機能サンドボックスの詳細については、Chrome の拡張機能ドキュメントを参照してください。
0.1.0
[string='']
(string): テンプレート文字列。[options={}]
(Object): オプションオブジェクト。[options.escape=_.templateSettings.escape]
(RegExp): HTML "escape" デリミター。[options.evaluate=_.templateSettings.evaluate]
(RegExp): "evaluate" デリミター。[options.imports=_.templateSettings.imports]
(Object): フリー変数としてテンプレートにインポートするオブジェクト。[options.interpolate=_.templateSettings.interpolate]
(RegExp): "interpolate" デリミター。[options.sourceURL='lodash.templateSources[n]']
(string): コンパイル済みテンプレートの sourceURL。[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><script></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=''])
String#toLowerCase と同様に、string
全体を小文字に変換します。
4.0.0
[string='']
(string): 変換する文字列。(string): 小文字に変換された文字列を返します。
_.toLower('--Foo-Bar--');// => '--foo-bar--' _.toLower('fooBar');// => 'foobar' _.toLower('__FOO_BAR__');// => '__foo_bar__'
_.toUpper([string=''])
String#toUpperCase と同様に、string
全体を大文字に変換します。
4.0.0
[string='']
(string): 変換する文字列。(string): 大文字に変換された文字列を返します。
_.toUpper('--foo-bar--');// => '--FOO-BAR--' _.toUpper('fooBar');// => 'FOOBAR' _.toUpper('__foo_bar__');// => '__FOO_BAR__'
_.trim([string=''], [chars=whitespace])
先頭と末尾の空白、または指定された文字を string
から削除します。
3.0.0
[string='']
(string): トリムする文字列。[chars=whitespace]
(string): トリムする文字。(string): トリムされた文字列を返します。
_.trim(' abc ');// => 'abc' _.trim('-_-abc-_-', '_-');// => 'abc' _.map([' foo ', ' bar '], _.trim);// => ['foo', 'bar']
_.trimEnd([string=''], [chars=whitespace])
末尾の空白、または指定された文字を string
から削除します。
4.0.0
[string='']
(string): トリムする文字列。[chars=whitespace]
(string): トリムする文字。(string): トリムされた文字列を返します。
_.trimEnd(' abc ');// => ' abc' _.trimEnd('-_-abc-_-', '_-');// => '-_-abc'
_.trimStart([string=''], [chars=whitespace])
先頭の空白、または指定された文字を string
から削除します。
4.0.0
[string='']
(string): トリムする文字列。[chars=whitespace]
(string): トリムする文字。(string): トリムされた文字列を返します。
_.trimStart(' abc ');// => 'abc ' _.trimStart('-_-abc-_-', '_-');// => 'abc-_-'
_.truncate([string=''], [options={}])
string
が指定された最大文字列長よりも長い場合は切り詰めます。切り詰められた文字列の最後の文字は、省略文字列 (デフォルトは "...") に置き換えられます。
4.0.0
[string='']
(文字列): 切り詰める文字列。[options={}]
(Object): オプションオブジェクト。[options.length=30]
(数値): 文字列の最大長。[options.omission='...']
(文字列): テキストが省略されていることを示す文字列。[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=''])
_.escape
の逆。このメソッドは、string
内の HTML エンティティ &
、<
、>
、"
、および '
を、対応する文字に変換します。
注意: 他の HTML エンティティはアンエスケープされません。追加の HTML エンティティをアンエスケープするには、he のようなサードパーティライブラリを使用してください。
0.6.0
[string='']
(文字列): アンエスケープする文字列。(文字列): アンエスケープされた文字列を返します。
_.unescape('fred, barney, & pebbles');// => 'fred, barney, & pebbles'
_.upperCase([string=''])
string
をスペースで区切られた単語として、大文字に変換します。
4.0.0
[string='']
(string): 変換する文字列。(string): 大文字に変換された文字列を返します。
_.upperCase('--foo-bar');// => 'FOO BAR' _.upperCase('fooBar');// => 'FOO BAR' _.upperCase('__foo_bar__');// => 'FOO BAR'
_.upperFirst([string=''])
string
の最初の文字を大文字に変換します。
4.0.0
[string='']
(string): 変換する文字列。(string): 変換された文字列を返します。
_.upperFirst('fred');// => 'Fred' _.upperFirst('FRED');// => 'FRED'
_.words([string=''], [pattern])
string
を単語の配列に分割します。
3.0.0
[string='']
(string): 検査する文字列。[pattern]
(RegExp|文字列): 単語を一致させるパターン。(配列): string
の単語を返します。
_.words('fred, barney, & pebbles');// => ['fred', 'barney', 'pebbles'] _.words('fred, barney, & pebbles', /[^, ]+/g);// => ['fred', 'barney', '&', 'pebbles']
「ユーティリティ」メソッド
_.attempt(func, [args])
func
の呼び出しを試み、結果またはキャッチされたエラーオブジェクトを返します。追加の引数は、func
が呼び出されるときに提供されます。
3.0.0
func
(関数): 試行する関数。[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)
オブジェクトのメソッドをオブジェクト自体にバインドし、既存のメソッドを上書きします。
注意: このメソッドは、バインドされた関数の「length」プロパティを設定しません。
0.1.0
object
(オブジェクト): バインドし、バインドされたメソッドを割り当てるオブジェクト。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)
pairs
を反復処理し、真を返す最初の述語の対応する関数を呼び出す関数を作成します。述語-関数ペアは、作成された関数の this
バインディングと引数で呼び出されます。
4.0.0
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)
source
の述語プロパティを、指定されたオブジェクトの対応するプロパティ値で呼び出し、すべての述語が真を返す場合は true
を返し、それ以外の場合は false
を返す関数を作成します。
注意: 作成された関数は、source
が部分的に適用された _.conformsTo
と同等です。
4.0.0
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)
value
を返す関数を作成します。
2.4.0
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)
value
をチェックして、代わりにデフォルト値を返す必要があるかどうかを判断します。value
が NaN
、null
、または undefined
の場合は、defaultValue
が返されます。
4.14.0
value
(*): チェックする値。defaultValue
(*): デフォルト値。(*): 解決された値を返します。
_.defaultTo(1, 10);// => 1 _.defaultTo(undefined, 10);// => 10
_.flow([funcs])
作成された関数の this
バインディングを使用して、指定された関数を呼び出した結果を返す関数を作成します。各後続の呼び出しには、前の関数の戻り値が提供されます。
3.0.0
[funcs]
(...(関数|関数[])): 呼び出す関数。(関数): 新しい合成関数を返します。
function square(n) { return n * n;} var addSquare = _.flow([_.add, square]);addSquare(1, 2);// => 9
_.flowRight([funcs])
このメソッドは、_.flow
に似ていますが、指定された関数を右から左に呼び出す関数を作成するという点が異なります。
3.0.0
[funcs]
(...(関数|関数[])): 呼び出す関数。(関数): 新しい合成関数を返します。
function square(n) { return n * n;} var addSquare = _.flowRight([square, _.add]);addSquare(1, 2);// => 9
_.identity(value)
このメソッドは、最初に受け取った引数を返します。
0.1.0
value
(*): 任意の値。(*): value
を返します。
var object = { 'a': 1 }; console.log(_.identity(object) === object);// => true
_.iteratee([func=_.identity])
作成された関数の引数で func
を呼び出す関数を作成します。func
がプロパティ名である場合、作成された関数は、指定された要素のプロパティ値を返します。func
が配列またはオブジェクトの場合、作成された関数は、同等のソースプロパティを含む要素に対して true
を返し、それ以外の場合は false
を返します。
4.0.0
[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)
指定されたオブジェクトと source
の間で部分的な深層比較を実行し、指定されたオブジェクトに同等のプロパティ値がある場合は true
を返し、それ以外の場合は false
を返す関数を作成します。
注意: 作成された関数は、source
が部分的に適用された _.isMatch
と同等です。
部分的な比較では、空の配列および空のオブジェクトsource
の値は、それぞれ任意の配列またはオブジェクトの値と一致します。サポートされている値の比較の一覧については、_.isEqual
を参照してください。
3.0.0
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)
指定されたオブジェクトの path
の値と srcValue
の間で部分的な深層比較を実行し、オブジェクトの値が同等の場合は true
を返し、それ以外の場合は false
を返す関数を作成します。
注意: 部分的な比較では、空の配列と空のオブジェクトの srcValue
の値は、それぞれ任意の配列またはオブジェクトの値と一致します。サポートされている値の比較のリストについては、_.isEqual
を参照してください。
3.2.0
path
(配列|文字列): 取得するプロパティのパス。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])
指定されたオブジェクトの path
にあるメソッドを呼び出す関数を作成します。追加の引数は、呼び出されたメソッドに提供されます。
3.7.0
path
(配列|文字列): 呼び出すメソッドのパス。[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])
_.method
の反対。このメソッドは、object
の指定されたパスにあるメソッドを呼び出す関数を作成します。追加の引数は、呼び出されたメソッドに提供されます。
3.7.0
object
(オブジェクト): クエリを実行するオブジェクト。[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={}])
ソースオブジェクトの、独自の列挙可能な文字列キーの関数プロパティをすべて、コピー先のオブジェクトに追加します。object
が関数の場合は、メソッドもそのプロトタイプに追加されます。
注意: 元の変更によって発生する競合を避けるため、オリジナルの lodash
関数を修正しないように、プリスティンな lodash
関数を作成するには、_.runInContext
を使用してください。
0.1.0
[object=lodash]
(関数|オブジェクト): コピー先のオブジェクト。source
(オブジェクト): 追加する関数のオブジェクト。[options={}]
(Object): オプションオブジェクト。[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()
_
変数を前の値に戻し、lodash
関数への参照を返します。
0.1.0
(関数): lodash
関数を返します。
var lodash = _.noConflict();
_.nthArg([n=0])
インデックス n
の引数を取得する関数を作成します。n
が負の場合、最後から n 番目の引数が返されます。
4.0.0
[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]])
受け取った引数で iteratees
を呼び出し、それらの結果を返す関数を作成します。
4.0.0
[iteratees=[_.identity]]
(...(関数|関数[])): 呼び出すイテレータ。(Function): 新しい関数を返します。
var func = _.over([Math.max, Math.min]); func(1, 2, 3, 4);// => [4, 1]
_.overEvery([predicates=[_.identity]])
predicates
のすべてが、受け取った引数で呼び出されたときに真を返すかどうかをチェックする関数を作成します。
4.0.0
[predicates=[_.identity]]
(...(関数|関数[])): チェックする述語。(Function): 新しい関数を返します。
var func = _.overEvery([Boolean, isFinite]); func('1');// => true func(null);// => false func(NaN);// => false
_.overSome([predicates=[_.identity]])
受け取った引数で呼び出されたときに、いずれかの predicates
が真値を返すかどうかをチェックする関数を作成します。
4.0.0
[predicates=[_.identity]]
(...(関数|関数[])): チェックする述語。(Function): 新しい関数を返します。
var func = _.overSome([Boolean, isFinite]); func('1');// => true func(null);// => true func(NaN);// => false
_.property(path)
与えられたオブジェクトのpath
にある値を返す関数を作成します。
2.4.0
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)
_.property
の反対です。このメソッドは、object
の指定されたパスにある値を返す関数を作成します。
3.0.0
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])
start
からend
まで(ただし、end
は含まない)の数値の配列を、(正および/または負) で作成します。start
が負で、end
またはstep
が指定されていない場合は、-1
のステップが使用されます。end
が指定されていない場合は、start
に設定され、start
は0
に設定されます。
注意: JavaScript は浮動小数点数の値を解決するために IEEE-754 標準に従っており、予期しない結果が生じる可能性があります。
0.1.0
[start=0]
(number): 範囲の開始。end
(number): 範囲の終了。[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])
このメソッドは、_.range
と似ていますが、降順で値を設定する点が異なります。
4.0.0
[start=0]
(number): 範囲の開始。end
(number): 範囲の終了。[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])
context
オブジェクトを使用して、新しいプリスティンなlodash
関数を作成します。
1.1.0
[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);// => falselodash.isFunction(lodash.bar);// => true // Create a suped-up `defer` in Node.js.var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
_.stubArray()
このメソッドは、新しい空の配列を返します。
4.13.0
(配列): 新しい空の配列を返します。
var arrays = _.times(2, _.stubArray); console.log(arrays);// => [[], []] console.log(arrays[0] === arrays[1]);// => false
_.stubFalse()
このメソッドはfalse
を返します。
4.13.0
(真偽値): false
を返します。
_.times(2, _.stubFalse);// => [false, false]
_.stubObject()
このメソッドは、新しい空のオブジェクトを返します。
4.13.0
(オブジェクト): 新しい空のオブジェクトを返します。
var objects = _.times(2, _.stubObject); console.log(objects);// => [{}, {}] console.log(objects[0] === objects[1]);// => false
_.stubString()
このメソッドは、空の文字列を返します。
4.13.0
(文字列): 空の文字列を返します。
_.times(2, _.stubString);// => ['', '']
_.stubTrue()
このメソッドはtrue
を返します。
4.13.0
(真偽値): true
を返します。
_.times(2, _.stubTrue);// => [true, true]
_.times(n, [iteratee=_.identity])
イテレーターをn
回呼び出し、各呼び出しの結果の配列を返します。イテレーターは1つの引数((インデックス))で呼び出されます。
0.1.0
n
(数値): iteratee
を呼び出す回数。[iteratee=_.identity]
(Function): 反復処理ごとに呼び出される関数。(Array): 結果の配列を返します。
_.times(3, String);// => ['0', '1', '2'] _.times(4, _.constant(0));// => [0, 0, 0, 0]
プロパティ
メソッド