mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-01 23:57:49 +00:00
4938 lines
147 KiB
Markdown
4938 lines
147 KiB
Markdown
# <a href="https://lodash.com/">Lo-Dash</a> <span>v2.4.2</span>
|
|
|
|
<!-- div class="toc-container" -->
|
|
|
|
<!-- div -->
|
|
|
|
## `Arrays`
|
|
* <a href="#_compactarray">`_.compact`</a>
|
|
* <a href="#_differencearray-values">`_.difference`</a>
|
|
* <a href="#_restarray-callback1-thisarg" class="alias">`_.drop` -> `rest`</a>
|
|
* <a href="#_findindexarray-callbackidentity-thisarg">`_.findIndex`</a>
|
|
* <a href="#_findlastindexarray-callbackidentity-thisarg">`_.findLastIndex`</a>
|
|
* <a href="#_firstarray-callback-thisarg">`_.first`</a>
|
|
* <a href="#_flattenarray-isshallowfalse-callbackidentity-thisarg">`_.flatten`</a>
|
|
* <a href="#_firstarray-callback-thisarg" class="alias">`_.head` -> `first`</a>
|
|
* <a href="#_indexofarray-value-fromindex0">`_.indexOf`</a>
|
|
* <a href="#_initialarray-callback1-thisarg">`_.initial`</a>
|
|
* <a href="#_intersectionarray">`_.intersection`</a>
|
|
* <a href="#_lastarray-callback-thisarg">`_.last`</a>
|
|
* <a href="#_lastindexofarray-value-fromindexarraylength-1">`_.lastIndexOf`</a>
|
|
* <a href="#_zipobjectkeys-values" class="alias">`_.object` -> `zipObject`</a>
|
|
* <a href="#_pullarray-value">`_.pull`</a>
|
|
* <a href="#_rangestart0-end-step1">`_.range`</a>
|
|
* <a href="#_removearray-callbackidentity-thisarg">`_.remove`</a>
|
|
* <a href="#_restarray-callback1-thisarg">`_.rest`</a>
|
|
* <a href="#_sortedindexarray-value-callbackidentity-thisarg">`_.sortedIndex`</a>
|
|
* <a href="#_restarray-callback1-thisarg" class="alias">`_.tail` -> `rest`</a>
|
|
* <a href="#_firstarray-callback-thisarg" class="alias">`_.take` -> `first`</a>
|
|
* <a href="#_unionarray">`_.union`</a>
|
|
* <a href="#_uniqarray-issortedfalse-callbackidentity-thisarg">`_.uniq`</a>
|
|
* <a href="#_uniqarray-issortedfalse-callbackidentity-thisarg" class="alias">`_.unique` -> `uniq`</a>
|
|
* <a href="#_ziparray" class="alias">`_.unzip` -> `zip`</a>
|
|
* <a href="#_withoutarray-value">`_.without`</a>
|
|
* <a href="#_xorarray">`_.xor`</a>
|
|
* <a href="#_ziparray">`_.zip`</a>
|
|
* <a href="#_zipobjectkeys-values">`_.zipObject`</a>
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `Chaining`
|
|
* <a href="#_value">`_`</a>
|
|
* <a href="#_chainvalue">`_.chain`</a>
|
|
* <a href="#_tapvalue-interceptor">`_.tap`</a>
|
|
* <a href="#_prototypechain">`_.prototype.chain`</a>
|
|
* <a href="#_prototypetostring">`_.prototype.toString`</a>
|
|
* <a href="#_prototypevalueof" class="alias">`_.prototype.value` -> `valueOf`</a>
|
|
* <a href="#_prototypevalueof">`_.prototype.valueOf`</a>
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `Collections`
|
|
* <a href="#_everycollection-callbackidentity-thisarg" class="alias">`_.all` -> `every`</a>
|
|
* <a href="#_somecollection-callbackidentity-thisarg" class="alias">`_.any` -> `some`</a>
|
|
* <a href="#_atcollection-index">`_.at`</a>
|
|
* <a href="#_mapcollection-callbackidentity-thisarg" class="alias">`_.collect` -> `map`</a>
|
|
* <a href="#_containscollection-target-fromindex0">`_.contains`</a>
|
|
* <a href="#_countbycollection-callbackidentity-thisarg">`_.countBy`</a>
|
|
* <a href="#_findcollection-callbackidentity-thisarg" class="alias">`_.detect` -> `find`</a>
|
|
* <a href="#_foreachcollection-callbackidentity-thisarg" class="alias">`_.each` -> `forEach`</a>
|
|
* <a href="#_foreachrightcollection-callbackidentity-thisarg" class="alias">`_.eachRight` -> `forEachRight`</a>
|
|
* <a href="#_everycollection-callbackidentity-thisarg">`_.every`</a>
|
|
* <a href="#_filtercollection-callbackidentity-thisarg">`_.filter`</a>
|
|
* <a href="#_findcollection-callbackidentity-thisarg">`_.find`</a>
|
|
* <a href="#_findlastcollection-callbackidentity-thisarg">`_.findLast`</a>
|
|
* <a href="#_findcollection-callbackidentity-thisarg" class="alias">`_.findWhere` -> `find`</a>
|
|
* <a href="#_reducecollection-callbackidentity-accumulator-thisarg" class="alias">`_.foldl` -> `reduce`</a>
|
|
* <a href="#_reducerightcollection-callbackidentity-accumulator-thisarg" class="alias">`_.foldr` -> `reduceRight`</a>
|
|
* <a href="#_foreachcollection-callbackidentity-thisarg">`_.forEach`</a>
|
|
* <a href="#_foreachrightcollection-callbackidentity-thisarg">`_.forEachRight`</a>
|
|
* <a href="#_groupbycollection-callbackidentity-thisarg">`_.groupBy`</a>
|
|
* <a href="#_containscollection-target-fromindex0" class="alias">`_.include` -> `contains`</a>
|
|
* <a href="#_indexbycollection-callbackidentity-thisarg">`_.indexBy`</a>
|
|
* <a href="#_reducecollection-callbackidentity-accumulator-thisarg" class="alias">`_.inject` -> `reduce`</a>
|
|
* <a href="#_invokecollection-methodname-arg">`_.invoke`</a>
|
|
* <a href="#_mapcollection-callbackidentity-thisarg">`_.map`</a>
|
|
* <a href="#_maxcollection-callbackidentity-thisarg">`_.max`</a>
|
|
* <a href="#_mincollection-callbackidentity-thisarg">`_.min`</a>
|
|
* <a href="#_pluckcollection-property">`_.pluck`</a>
|
|
* <a href="#_reducecollection-callbackidentity-accumulator-thisarg">`_.reduce`</a>
|
|
* <a href="#_reducerightcollection-callbackidentity-accumulator-thisarg">`_.reduceRight`</a>
|
|
* <a href="#_rejectcollection-callbackidentity-thisarg">`_.reject`</a>
|
|
* <a href="#_samplecollection-n">`_.sample`</a>
|
|
* <a href="#_filtercollection-callbackidentity-thisarg" class="alias">`_.select` -> `filter`</a>
|
|
* <a href="#_shufflecollection">`_.shuffle`</a>
|
|
* <a href="#_sizecollection">`_.size`</a>
|
|
* <a href="#_somecollection-callbackidentity-thisarg">`_.some`</a>
|
|
* <a href="#_sortbycollection-callbackidentity-thisarg">`_.sortBy`</a>
|
|
* <a href="#_toarraycollection">`_.toArray`</a>
|
|
* <a href="#_wherecollection-props">`_.where`</a>
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `Functions`
|
|
* <a href="#_aftern-func">`_.after`</a>
|
|
* <a href="#_bindfunc-thisarg-arg">`_.bind`</a>
|
|
* <a href="#_bindallobject-methodname">`_.bindAll`</a>
|
|
* <a href="#_bindkeyobject-key-arg">`_.bindKey`</a>
|
|
* <a href="#_composefunc">`_.compose`</a>
|
|
* <a href="#_curryfunc-arityfunclength">`_.curry`</a>
|
|
* <a href="#_debouncefunc-wait-options">`_.debounce`</a>
|
|
* <a href="#_deferfunc-arg">`_.defer`</a>
|
|
* <a href="#_delayfunc-wait-arg">`_.delay`</a>
|
|
* <a href="#_memoizefunc-resolver">`_.memoize`</a>
|
|
* <a href="#_oncefunc">`_.once`</a>
|
|
* <a href="#_partialfunc-arg">`_.partial`</a>
|
|
* <a href="#_partialrightfunc-arg">`_.partialRight`</a>
|
|
* <a href="#_throttlefunc-wait-options">`_.throttle`</a>
|
|
* <a href="#_wrapvalue-wrapper">`_.wrap`</a>
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `Objects`
|
|
* <a href="#_assignobject-source-callback-thisarg">`_.assign`</a>
|
|
* <a href="#_clonevalue-isdeepfalse-callback-thisarg">`_.clone`</a>
|
|
* <a href="#_clonedeepvalue-callback-thisarg">`_.cloneDeep`</a>
|
|
* <a href="#_createprototype-properties">`_.create`</a>
|
|
* <a href="#_defaultsobject-source">`_.defaults`</a>
|
|
* <a href="#_assignobject-source-callback-thisarg" class="alias">`_.extend` -> `assign`</a>
|
|
* <a href="#_findkeyobject-callbackidentity-thisarg">`_.findKey`</a>
|
|
* <a href="#_findlastkeyobject-callbackidentity-thisarg">`_.findLastKey`</a>
|
|
* <a href="#_forinobject-callbackidentity-thisarg">`_.forIn`</a>
|
|
* <a href="#_forinrightobject-callbackidentity-thisarg">`_.forInRight`</a>
|
|
* <a href="#_forownobject-callbackidentity-thisarg">`_.forOwn`</a>
|
|
* <a href="#_forownrightobject-callbackidentity-thisarg">`_.forOwnRight`</a>
|
|
* <a href="#_functionsobject">`_.functions`</a>
|
|
* <a href="#_hasobject-key">`_.has`</a>
|
|
* <a href="#_invertobject">`_.invert`</a>
|
|
* <a href="#_isargumentsvalue">`_.isArguments`</a>
|
|
* <a href="#_isarrayvalue">`_.isArray`</a>
|
|
* <a href="#_isbooleanvalue">`_.isBoolean`</a>
|
|
* <a href="#_isdatevalue">`_.isDate`</a>
|
|
* <a href="#_iselementvalue">`_.isElement`</a>
|
|
* <a href="#_isemptyvalue">`_.isEmpty`</a>
|
|
* <a href="#_isequala-b-callback-thisarg">`_.isEqual`</a>
|
|
* <a href="#_isfinitevalue">`_.isFinite`</a>
|
|
* <a href="#_isfunctionvalue">`_.isFunction`</a>
|
|
* <a href="#_isnanvalue">`_.isNaN`</a>
|
|
* <a href="#_isnullvalue">`_.isNull`</a>
|
|
* <a href="#_isnumbervalue">`_.isNumber`</a>
|
|
* <a href="#_isobjectvalue">`_.isObject`</a>
|
|
* <a href="#_isplainobjectvalue">`_.isPlainObject`</a>
|
|
* <a href="#_isregexpvalue">`_.isRegExp`</a>
|
|
* <a href="#_isstringvalue">`_.isString`</a>
|
|
* <a href="#_isundefinedvalue">`_.isUndefined`</a>
|
|
* <a href="#_keysobject">`_.keys`</a>
|
|
* <a href="#_mapvaluesobject-callbackidentity-thisarg">`_.mapValues`</a>
|
|
* <a href="#_mergeobject-source-callback-thisarg">`_.merge`</a>
|
|
* <a href="#_functionsobject" class="alias">`_.methods` -> `functions`</a>
|
|
* <a href="#_omitobject-callback-thisarg">`_.omit`</a>
|
|
* <a href="#_pairsobject">`_.pairs`</a>
|
|
* <a href="#_pickobject-callback-thisarg">`_.pick`</a>
|
|
* <a href="#_transformobject-callbackidentity-accumulator-thisarg">`_.transform`</a>
|
|
* <a href="#_valuesobject">`_.values`</a>
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `Utilities`
|
|
* <a href="#_constantvalue">`_.constant`</a>
|
|
* <a href="#_createcallbackfuncidentity-thisarg-argcount">`_.createCallback`</a>
|
|
* <a href="#_escapestring">`_.escape`</a>
|
|
* <a href="#_identityvalue">`_.identity`</a>
|
|
* <a href="#_mixinobjectlodash-source-options">`_.mixin`</a>
|
|
* <a href="#_noconflict">`_.noConflict`</a>
|
|
* <a href="#_noop">`_.noop`</a>
|
|
* <a href="#_now">`_.now`</a>
|
|
* <a href="#_parseintvalue-radix">`_.parseInt`</a>
|
|
* <a href="#_propertykey">`_.property`</a>
|
|
* <a href="#_randommin0-max1-floatingfalse">`_.random`</a>
|
|
* <a href="#_resultobject-key">`_.result`</a>
|
|
* <a href="#_runincontextcontextroot">`_.runInContext`</a>
|
|
* <a href="#_templatetext-data-options-sourceurl-variable">`_.template`</a>
|
|
* <a href="#_timesn-callback-thisarg">`_.times`</a>
|
|
* <a href="#_unescapestring">`_.unescape`</a>
|
|
* <a href="#_uniqueidprefix">`_.uniqueId`</a>
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `Methods`
|
|
* <a href="#_templatesettingsimports_">`_.templateSettings.imports._`</a>
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `Properties`
|
|
* <a href="#_version">`_.VERSION`</a>
|
|
* <a href="#_support">`_.support`</a>
|
|
* <a href="#_supportargsclass">`_.support.argsClass`</a>
|
|
* <a href="#_supportargsobject">`_.support.argsObject`</a>
|
|
* <a href="#_supportenumerrorprops">`_.support.enumErrorProps`</a>
|
|
* <a href="#_supportenumprototypes">`_.support.enumPrototypes`</a>
|
|
* <a href="#_supportfuncdecomp">`_.support.funcDecomp`</a>
|
|
* <a href="#_supportfuncnames">`_.support.funcNames`</a>
|
|
* <a href="#_supportnonenumargs">`_.support.nonEnumArgs`</a>
|
|
* <a href="#_supportnonenumshadows">`_.support.nonEnumShadows`</a>
|
|
* <a href="#_supportownlast">`_.support.ownLast`</a>
|
|
* <a href="#_supportspliceobjects">`_.support.spliceObjects`</a>
|
|
* <a href="#_supportunindexedchars">`_.support.unindexedChars`</a>
|
|
* <a href="#_templatesettings">`_.templateSettings`</a>
|
|
* <a href="#_templatesettingsescape">`_.templateSettings.escape`</a>
|
|
* <a href="#_templatesettingsevaluate">`_.templateSettings.evaluate`</a>
|
|
* <a href="#_templatesettingsimports">`_.templateSettings.imports`</a>
|
|
* <a href="#_templatesettingsinterpolate">`_.templateSettings.interpolate`</a>
|
|
* <a href="#_templatesettingsvariable">`_.templateSettings.variable`</a>
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div class="doc-container" -->
|
|
|
|
<!-- div -->
|
|
|
|
## `“Arrays” Methods`
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_compactarray"></a>`_.compact(array)`
|
|
<a href="#_compactarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4480 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array with all falsey values removed. The values `false`, `null`,
|
|
`0`, `""`, `undefined`, and `NaN` are all falsey.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to compact.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of filtered values.
|
|
|
|
#### Example
|
|
```js
|
|
_.compact([0, 1, false, 2, '', 3]);
|
|
// => [1, 2, 3]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_differencearray-values"></a>`_.difference(array, [values])`
|
|
<a href="#_differencearray-values">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4509 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array excluding all values of the provided arrays using strict
|
|
equality for comparisons, i.e. `===`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to process.
|
|
2. `[values]` *(...Array)*: The arrays of values to exclude.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of filtered values.
|
|
|
|
#### Example
|
|
```js
|
|
_.difference([1, 2, 3, 4, 5], [5, 2, 10]);
|
|
// => [1, 3, 4]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_findindexarray-callbackidentity-thisarg"></a>`_.findIndex(array, [callback=identity], [thisArg])`
|
|
<a href="#_findindexarray-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4554 "View in source") [Ⓣ][1]
|
|
|
|
This method is like `_.find` except that it returns the index of the first
|
|
element that passes the callback check, instead of the element itself.
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to search.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(number)*: Returns the index of the found element, else `-1`.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36, 'blocked': false },
|
|
{ 'name': 'fred', 'age': 40, 'blocked': true },
|
|
{ 'name': 'pebbles', 'age': 1, 'blocked': false }
|
|
];
|
|
|
|
_.findIndex(characters, function(chr) {
|
|
return chr.age < 20;
|
|
});
|
|
// => 2
|
|
|
|
// using "_.where" callback shorthand
|
|
_.findIndex(characters, { 'age': 36 });
|
|
// => 0
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.findIndex(characters, 'blocked');
|
|
// => 1
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_findlastindexarray-callbackidentity-thisarg"></a>`_.findLastIndex(array, [callback=identity], [thisArg])`
|
|
<a href="#_findlastindexarray-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4608 "View in source") [Ⓣ][1]
|
|
|
|
This method is like `_.findIndex` except that it iterates over elements
|
|
of a `collection` from right to left.
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to search.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(number)*: Returns the index of the found element, else `-1`.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36, 'blocked': true },
|
|
{ 'name': 'fred', 'age': 40, 'blocked': false },
|
|
{ 'name': 'pebbles', 'age': 1, 'blocked': true }
|
|
];
|
|
|
|
_.findLastIndex(characters, function(chr) {
|
|
return chr.age > 30;
|
|
});
|
|
// => 1
|
|
|
|
// using "_.where" callback shorthand
|
|
_.findLastIndex(characters, { 'age': 36 });
|
|
// => 0
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.findLastIndex(characters, 'blocked');
|
|
// => 2
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_firstarray-callback-thisarg"></a>`_.first(array, [callback], [thisArg])`
|
|
<a href="#_firstarray-callback-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4670 "View in source") [Ⓣ][1]
|
|
|
|
Gets the first element or first `n` elements of an array. If a callback
|
|
is provided elements at the beginning of the array are returned as long
|
|
as the callback returns truey. The callback is bound to `thisArg` and
|
|
invoked with three arguments; (value, index, array).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Aliases
|
|
*_.head, _.take*
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to query.
|
|
2. `[callback]` *(Function|Object|number|string)*: The function called per element or the number of elements to return. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the first element(s) of `array`.
|
|
|
|
#### Example
|
|
```js
|
|
_.first([1, 2, 3]);
|
|
// => 1
|
|
|
|
_.first([1, 2, 3], 2);
|
|
// => [1, 2]
|
|
|
|
_.first([1, 2, 3], function(num) {
|
|
return num < 3;
|
|
});
|
|
// => [1, 2]
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'blocked': true, 'employer': 'slate' },
|
|
{ 'name': 'fred', 'blocked': false, 'employer': 'slate' },
|
|
{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.first(characters, 'blocked');
|
|
// => [{ 'name': 'barney', 'blocked': true, 'employer': 'slate' }]
|
|
|
|
// using "_.where" callback shorthand
|
|
_.pluck(_.first(characters, { 'employer': 'slate' }), 'name');
|
|
// => ['barney', 'fred']
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_flattenarray-isshallowfalse-callbackidentity-thisarg"></a>`_.flatten(array, [isShallow=false], [callback=identity], [thisArg])`
|
|
<a href="#_flattenarray-isshallowfalse-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4730 "View in source") [Ⓣ][1]
|
|
|
|
Flattens a nested array (the nesting can be to any depth). If `isShallow`
|
|
is truey, the array will only be flattened a single level. If a callback
|
|
is provided each element of the array is passed through the callback before
|
|
flattening. The callback is bound to `thisArg` and invoked with three
|
|
arguments; (value, index, array).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to flatten.
|
|
2. `[isShallow=false]` *(boolean)*: A flag to restrict flattening to a single level.
|
|
3. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
4. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new flattened array.
|
|
|
|
#### Example
|
|
```js
|
|
_.flatten([1, [2], [3, [[4]]]]);
|
|
// => [1, 2, 3, 4];
|
|
|
|
_.flatten([1, [2], [3, [[4]]]], true);
|
|
// => [1, 2, 3, [[4]]];
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 30, 'pets': ['hoppy'] },
|
|
{ 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.flatten(characters, 'pets');
|
|
// => ['hoppy', 'baby puss', 'dino']
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_indexofarray-value-fromindex0"></a>`_.indexOf(array, value, [fromIndex=0])`
|
|
<a href="#_indexofarray-value-fromindex0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4767 "View in source") [Ⓣ][1]
|
|
|
|
Gets the index at which the first occurrence of `value` is found using
|
|
strict equality for comparisons, i.e. `===`. If the array is already sorted
|
|
providing `true` for `fromIndex` will run a faster binary search.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to search.
|
|
2. `value` *(*)*: The value to search for.
|
|
3. `[fromIndex=0]` *(boolean|number)*: The index to search from or `true` to perform a binary search on a sorted array.
|
|
|
|
#### Returns
|
|
*(number)*: Returns the index of the matched value or `-1`.
|
|
|
|
#### Example
|
|
```js
|
|
_.indexOf([1, 2, 3, 1, 2, 3], 2);
|
|
// => 1
|
|
|
|
_.indexOf([1, 2, 3, 1, 2, 3], 2, 3);
|
|
// => 4
|
|
|
|
_.indexOf([1, 1, 2, 2, 3, 3], 2, true);
|
|
// => 2
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_initialarray-callback1-thisarg"></a>`_.initial(array, [callback=1], [thisArg])`
|
|
<a href="#_initialarray-callback1-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4828 "View in source") [Ⓣ][1]
|
|
|
|
Gets all but the last element or last `n` elements of an array. If a
|
|
callback is provided elements at the end of the array are excluded from
|
|
the result as long as the callback returns truey. The callback is bound
|
|
to `thisArg` and invoked with three arguments; (value, index, array).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to query.
|
|
2. `[callback=1]` *(Function|Object|number|string)*: The function called per element or the number of elements to exclude. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a slice of `array`.
|
|
|
|
#### Example
|
|
```js
|
|
_.initial([1, 2, 3]);
|
|
// => [1, 2]
|
|
|
|
_.initial([1, 2, 3], 2);
|
|
// => [1]
|
|
|
|
_.initial([1, 2, 3], function(num) {
|
|
return num > 1;
|
|
});
|
|
// => [1]
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'blocked': false, 'employer': 'slate' },
|
|
{ 'name': 'fred', 'blocked': true, 'employer': 'slate' },
|
|
{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.initial(characters, 'blocked');
|
|
// => [{ 'name': 'barney', 'blocked': false, 'employer': 'slate' }]
|
|
|
|
// using "_.where" callback shorthand
|
|
_.pluck(_.initial(characters, { 'employer': 'na' }), 'name');
|
|
// => ['barney', 'fred']
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_intersectionarray"></a>`_.intersection([array])`
|
|
<a href="#_intersectionarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4858 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array of unique values present in all provided arrays using
|
|
strict equality for comparisons, i.e. `===`.
|
|
|
|
#### Arguments
|
|
1. `[array]` *(...Array)*: The arrays to inspect.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns an array of shared values.
|
|
|
|
#### Example
|
|
```js
|
|
_.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);
|
|
// => [1, 2]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_lastarray-callback-thisarg"></a>`_.last(array, [callback], [thisArg])`
|
|
<a href="#_lastarray-callback-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4958 "View in source") [Ⓣ][1]
|
|
|
|
Gets the last element or last `n` elements of an array. If a callback is
|
|
provided elements at the end of the array are returned as long as the
|
|
callback returns truey. The callback is bound to `thisArg` and invoked
|
|
with three arguments; (value, index, array).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to query.
|
|
2. `[callback]` *(Function|Object|number|string)*: The function called per element or the number of elements to return. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the last element(s) of `array`.
|
|
|
|
#### Example
|
|
```js
|
|
_.last([1, 2, 3]);
|
|
// => 3
|
|
|
|
_.last([1, 2, 3], 2);
|
|
// => [2, 3]
|
|
|
|
_.last([1, 2, 3], function(num) {
|
|
return num > 1;
|
|
});
|
|
// => [2, 3]
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'blocked': false, 'employer': 'slate' },
|
|
{ 'name': 'fred', 'blocked': true, 'employer': 'slate' },
|
|
{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.pluck(_.last(characters, 'blocked'), 'name');
|
|
// => ['fred', 'pebbles']
|
|
|
|
// using "_.where" callback shorthand
|
|
_.last(characters, { 'employer': 'na' });
|
|
// => [{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_lastindexofarray-value-fromindexarraylength-1"></a>`_.lastIndexOf(array, value, [fromIndex=array.length-1])`
|
|
<a href="#_lastindexofarray-value-fromindexarraylength-1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5004 "View in source") [Ⓣ][1]
|
|
|
|
Gets the index at which the last occurrence of `value` is found using strict
|
|
equality for comparisons, i.e. `===`. If `fromIndex` is negative, it is used
|
|
as the offset from the end of the collection.
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to search.
|
|
2. `value` *(*)*: The value to search for.
|
|
3. `[fromIndex=array.length-1]` *(number)*: The index to search from.
|
|
|
|
#### Returns
|
|
*(number)*: Returns the index of the matched value or `-1`.
|
|
|
|
#### Example
|
|
```js
|
|
_.lastIndexOf([1, 2, 3, 1, 2, 3], 2);
|
|
// => 4
|
|
|
|
_.lastIndexOf([1, 2, 3, 1, 2, 3], 2, 3);
|
|
// => 1
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_pullarray-value"></a>`_.pull(array, [value])`
|
|
<a href="#_pullarray-value">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5034 "View in source") [Ⓣ][1]
|
|
|
|
Removes all provided values from the given array using strict equality for
|
|
comparisons, i.e. `===`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to modify.
|
|
2. `[value]` *(...*)*: The values to remove.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns `array`.
|
|
|
|
#### Example
|
|
```js
|
|
var array = [1, 2, 3, 1, 2, 3];
|
|
_.pull(array, 2, 3);
|
|
console.log(array);
|
|
// => [1, 1]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_rangestart0-end-step1"></a>`_.range([start=0], end, [step=1])`
|
|
<a href="#_rangestart0-end-step1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5085 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array of numbers (positive and/or negative) progressing from
|
|
`start` up to but not including `end`. If `start` is less than `stop` a
|
|
zero-length range is created unless a negative `step` is specified.
|
|
|
|
#### Arguments
|
|
1. `[start=0]` *(number)*: The start of the range.
|
|
2. `end` *(number)*: The end of the range.
|
|
3. `[step=1]` *(number)*: The value to increment or decrement by.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new range array.
|
|
|
|
#### Example
|
|
```js
|
|
_.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);
|
|
// => []
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_removearray-callbackidentity-thisarg"></a>`_.remove(array, [callback=identity], [thisArg])`
|
|
<a href="#_removearray-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5138 "View in source") [Ⓣ][1]
|
|
|
|
Removes all elements from an array that the callback returns truey for
|
|
and returns an array of removed elements. The callback is bound to `thisArg`
|
|
and invoked with three arguments; (value, index, array).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to modify.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of removed elements.
|
|
|
|
#### Example
|
|
```js
|
|
var array = [1, 2, 3, 4, 5, 6];
|
|
var evens = _.remove(array, function(num) { return num % 2 == 0; });
|
|
|
|
console.log(array);
|
|
// => [1, 3, 5]
|
|
|
|
console.log(evens);
|
|
// => [2, 4, 6]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_restarray-callback1-thisarg"></a>`_.rest(array, [callback=1], [thisArg])`
|
|
<a href="#_restarray-callback1-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5207 "View in source") [Ⓣ][1]
|
|
|
|
The opposite of `_.initial` this method gets all but the first element or
|
|
first `n` elements of an array. If a callback function is provided elements
|
|
at the beginning of the array are excluded from the result as long as the
|
|
callback returns truey. The callback is bound to `thisArg` and invoked
|
|
with three arguments; (value, index, array).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Aliases
|
|
*_.drop, _.tail*
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to query.
|
|
2. `[callback=1]` *(Function|Object|number|string)*: The function called per element or the number of elements to exclude. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a slice of `array`.
|
|
|
|
#### Example
|
|
```js
|
|
_.rest([1, 2, 3]);
|
|
// => [2, 3]
|
|
|
|
_.rest([1, 2, 3], 2);
|
|
// => [3]
|
|
|
|
_.rest([1, 2, 3], function(num) {
|
|
return num < 3;
|
|
});
|
|
// => [3]
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'blocked': true, 'employer': 'slate' },
|
|
{ 'name': 'fred', 'blocked': false, 'employer': 'slate' },
|
|
{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.pluck(_.rest(characters, 'blocked'), 'name');
|
|
// => ['fred', 'pebbles']
|
|
|
|
// using "_.where" callback shorthand
|
|
_.rest(characters, { 'employer': 'slate' });
|
|
// => [{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_sortedindexarray-value-callbackidentity-thisarg"></a>`_.sortedIndex(array, value, [callback=identity], [thisArg])`
|
|
<a href="#_sortedindexarray-value-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5271 "View in source") [Ⓣ][1]
|
|
|
|
Uses a binary search to determine the smallest index at which a value
|
|
should be inserted into a given sorted array in order to maintain the sort
|
|
order of the array. If a callback is provided it will be executed for
|
|
`value` and each element of `array` to compute their sort ranking. The
|
|
callback is bound to `thisArg` and invoked with one argument; (value).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to inspect.
|
|
2. `value` *(*)*: The value to evaluate.
|
|
3. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
4. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(number)*: Returns the index at which `value` should be inserted
|
|
into `array`.
|
|
|
|
#### Example
|
|
```js
|
|
_.sortedIndex([20, 30, 50], 40);
|
|
// => 2
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.sortedIndex([{ 'x': 20 }, { 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x');
|
|
// => 2
|
|
|
|
var dict = {
|
|
'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 }
|
|
};
|
|
|
|
_.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) {
|
|
return dict.wordToNumber[word];
|
|
});
|
|
// => 2
|
|
|
|
_.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) {
|
|
return this.wordToNumber[word];
|
|
}, dict);
|
|
// => 2
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_unionarray"></a>`_.union([array])`
|
|
<a href="#_unionarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5302 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array of unique values, in order, of the provided arrays using
|
|
strict equality for comparisons, i.e. `===`.
|
|
|
|
#### Arguments
|
|
1. `[array]` *(...Array)*: The arrays to inspect.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns an array of combined values.
|
|
|
|
#### Example
|
|
```js
|
|
_.union([1, 2, 3], [5, 2, 1, 4], [2, 1]);
|
|
// => [1, 2, 3, 5, 4]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_uniqarray-issortedfalse-callbackidentity-thisarg"></a>`_.uniq(array, [isSorted=false], [callback=identity], [thisArg])`
|
|
<a href="#_uniqarray-issortedfalse-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5350 "View in source") [Ⓣ][1]
|
|
|
|
Creates a duplicate-value-free version of an array using strict equality
|
|
for comparisons, i.e. `===`. If the array is sorted, providing
|
|
`true` for `isSorted` will use a faster algorithm. If a callback is provided
|
|
each element of `array` is passed through the callback before uniqueness
|
|
is computed. The callback is bound to `thisArg` and invoked with three
|
|
arguments; (value, index, array).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Aliases
|
|
*_.unique*
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to process.
|
|
2. `[isSorted=false]` *(boolean)*: A flag to indicate that `array` is sorted.
|
|
3. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
4. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a duplicate-value-free array.
|
|
|
|
#### Example
|
|
```js
|
|
_.uniq([1, 2, 1, 3, 1]);
|
|
// => [1, 2, 3]
|
|
|
|
_.uniq([1, 1, 2, 2, 3], true);
|
|
// => [1, 2, 3]
|
|
|
|
_.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });
|
|
// => ['A', 'b', 'C']
|
|
|
|
_.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);
|
|
// => [1, 2.5, 3]
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
|
|
// => [{ 'x': 1 }, { 'x': 2 }]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_withoutarray-value"></a>`_.without(array, [value])`
|
|
<a href="#_withoutarray-value">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5378 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array excluding all provided values using strict equality for
|
|
comparisons, i.e. `===`.
|
|
|
|
#### Arguments
|
|
1. `array` *(Array)*: The array to filter.
|
|
2. `[value]` *(...*)*: The values to exclude.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of filtered values.
|
|
|
|
#### Example
|
|
```js
|
|
_.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
|
|
// => [2, 3, 4]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_xorarray"></a>`_.xor([array])`
|
|
<a href="#_xorarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5399 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array that is the symmetric difference of the provided arrays.
|
|
See http://en.wikipedia.org/wiki/Symmetric_difference.
|
|
|
|
#### Arguments
|
|
1. `[array]` *(...Array)*: The arrays to inspect.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns an array of values.
|
|
|
|
#### Example
|
|
```js
|
|
_.xor([1, 2, 3], [5, 2, 1, 4]);
|
|
// => [3, 5, 4]
|
|
|
|
_.xor([1, 2, 5], [2, 3, 5], [3, 4, 5]);
|
|
// => [1, 4, 5]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_ziparray"></a>`_.zip([array])`
|
|
<a href="#_ziparray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5430 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array of grouped elements, the first of which contains the first
|
|
elements of the given arrays, the second of which contains the second
|
|
elements of the given arrays, and so on.
|
|
|
|
#### Aliases
|
|
*_.unzip*
|
|
|
|
#### Arguments
|
|
1. `[array]` *(...Array)*: Arrays to process.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of grouped elements.
|
|
|
|
#### Example
|
|
```js
|
|
_.zip(['fred', 'barney'], [30, 40], [true, false]);
|
|
// => [['fred', 30, true], ['barney', 40, false]]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_zipobjectkeys-values"></a>`_.zipObject(keys, [values=[]])`
|
|
<a href="#_zipobjectkeys-values">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5460 "View in source") [Ⓣ][1]
|
|
|
|
Creates an object composed from arrays of `keys` and `values`. Provide
|
|
either a single two dimensional array, i.e. `[[key1, value1], [key2, value2]]`
|
|
or two arrays, one of `keys` and one of corresponding `values`.
|
|
|
|
#### Aliases
|
|
*_.object*
|
|
|
|
#### Arguments
|
|
1. `keys` *(Array)*: The array of keys.
|
|
2. `[values=[]]` *(Array)*: The array of values.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns an object composed of the given keys and
|
|
corresponding values.
|
|
|
|
#### Example
|
|
```js
|
|
_.zipObject(['fred', 'barney'], [30, 40]);
|
|
// => { 'fred': 30, 'barney': 40 }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `“Chaining” Methods`
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_value"></a>`_(value)`
|
|
<a href="#_value">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L647 "View in source") [Ⓣ][1]
|
|
|
|
Creates a `lodash` object which wraps the given value to enable intuitive
|
|
method chaining.
|
|
<br>
|
|
<br>
|
|
In addition to Lo-Dash methods, wrappers also have the following `Array` methods:<br>
|
|
`concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, `splice`,
|
|
and `unshift`
|
|
<br>
|
|
<br>
|
|
Chaining is supported in custom builds as long as the `value` method is
|
|
implicitly or explicitly included in the build.
|
|
<br>
|
|
<br>
|
|
The chainable wrapper functions are:<br>
|
|
`after`, `assign`, `bind`, `bindAll`, `bindKey`, `chain`, `compact`,
|
|
`compose`, `concat`, `countBy`, `create`, `createCallback`, `curry`,
|
|
`debounce`, `defaults`, `defer`, `delay`, `difference`, `filter`, `flatten`,
|
|
`forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`,
|
|
`functions`, `groupBy`, `indexBy`, `initial`, `intersection`, `invert`,
|
|
`invoke`, `keys`, `map`, `max`, `memoize`, `merge`, `min`, `object`, `omit`,
|
|
`once`, `pairs`, `partial`, `partialRight`, `pick`, `pluck`, `pull`, `push`,
|
|
`range`, `reject`, `remove`, `rest`, `reverse`, `shuffle`, `slice`, `sort`,
|
|
`sortBy`, `splice`, `tap`, `throttle`, `times`, `toArray`, `transform`,
|
|
`union`, `uniq`, `unshift`, `unzip`, `values`, `where`, `without`, `wrap`,
|
|
and `zip`
|
|
<br>
|
|
<br>
|
|
The non-chainable wrapper functions are:<br>
|
|
`clone`, `cloneDeep`, `contains`, `escape`, `every`, `find`, `findIndex`,
|
|
`findKey`, `findLast`, `findLastIndex`, `findLastKey`, `has`, `identity`,
|
|
`indexOf`, `isArguments`, `isArray`, `isBoolean`, `isDate`, `isElement`,
|
|
`isEmpty`, `isEqual`, `isFinite`, `isFunction`, `isNaN`, `isNull`, `isNumber`,
|
|
`isObject`, `isPlainObject`, `isRegExp`, `isString`, `isUndefined`, `join`,
|
|
`lastIndexOf`, `mixin`, `noConflict`, `parseInt`, `pop`, `random`, `reduce`,
|
|
`reduceRight`, `result`, `shift`, `size`, `some`, `sortedIndex`, `runInContext`,
|
|
`template`, `unescape`, `uniqueId`, and `value`
|
|
<br>
|
|
<br>
|
|
The wrapper functions `first` and `last` return wrapped values when `n` is
|
|
provided, otherwise they return unwrapped values.
|
|
<br>
|
|
<br>
|
|
Explicit chaining can be enabled by using the `_.chain` method.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to wrap in a `lodash` instance.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns a `lodash` instance.
|
|
|
|
#### Example
|
|
```js
|
|
var wrapped = _([1, 2, 3]);
|
|
|
|
// returns an unwrapped value
|
|
wrapped.reduce(function(sum, num) {
|
|
return sum + num;
|
|
});
|
|
// => 6
|
|
|
|
// returns a wrapped value
|
|
var squares = wrapped.map(function(num) {
|
|
return num * num;
|
|
});
|
|
|
|
_.isArray(squares);
|
|
// => false
|
|
|
|
_.isArray(squares.value());
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_chainvalue"></a>`_.chain(value)`
|
|
<a href="#_chainvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6789 "View in source") [Ⓣ][1]
|
|
|
|
Creates a `lodash` object that wraps the given value with explicit
|
|
method chaining enabled.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to wrap.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns the wrapper object.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 },
|
|
{ 'name': 'pebbles', 'age': 1 }
|
|
];
|
|
|
|
var youngest = _.chain(characters)
|
|
.sortBy('age')
|
|
.map(function(chr) { return chr.name + ' is ' + chr.age; })
|
|
.first()
|
|
.value();
|
|
// => 'pebbles is 1'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_tapvalue-interceptor"></a>`_.tap(value, interceptor)`
|
|
<a href="#_tapvalue-interceptor">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6815 "View in source") [Ⓣ][1]
|
|
|
|
Invokes `interceptor` with the `value` as the first argument and then
|
|
returns `value`. The purpose of this method is to "tap into" a method
|
|
chain in order to perform operations on intermediate results within
|
|
the chain.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to provide to `interceptor`.
|
|
2. `interceptor` *(Function)*: The function to invoke.
|
|
|
|
#### Returns
|
|
*(*)*: Returns `value`.
|
|
|
|
#### Example
|
|
```js
|
|
_([1, 2, 3, 4])
|
|
.tap(function(array) { array.pop(); })
|
|
.reverse()
|
|
.value();
|
|
// => [3, 2, 1]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_prototypechain"></a>`_.prototype.chain()`
|
|
<a href="#_prototypechain">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6845 "View in source") [Ⓣ][1]
|
|
|
|
Enables explicit method chaining on the wrapper object.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the wrapper object.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 }
|
|
];
|
|
|
|
// without explicit chaining
|
|
_(characters).first();
|
|
// => { 'name': 'barney', 'age': 36 }
|
|
|
|
// with explicit chaining
|
|
_(characters).chain()
|
|
.first()
|
|
.pick('age')
|
|
.value();
|
|
// => { 'age': 36 }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_prototypetostring"></a>`_.prototype.toString()`
|
|
<a href="#_prototypetostring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6862 "View in source") [Ⓣ][1]
|
|
|
|
Produces the `toString` result of the wrapped value.
|
|
|
|
#### Returns
|
|
*(string)*: Returns the string result.
|
|
|
|
#### Example
|
|
```js
|
|
_([1, 2, 3]).toString();
|
|
// => '1,2,3'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_prototypevalueof"></a>`_.prototype.valueOf()`
|
|
<a href="#_prototypevalueof">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6879 "View in source") [Ⓣ][1]
|
|
|
|
Extracts the wrapped value.
|
|
|
|
#### Aliases
|
|
*_.prototype.value*
|
|
|
|
#### Returns
|
|
*(*)*: Returns the wrapped value.
|
|
|
|
#### Example
|
|
```js
|
|
_([1, 2, 3]).valueOf();
|
|
// => [1, 2, 3]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `“Collections” Methods`
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_atcollection-index"></a>`_.at(collection, [index])`
|
|
<a href="#_atcollection-index">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3297 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array of elements from the specified indexes, or keys, of the
|
|
`collection`. Indexes may be specified as individual arguments or as arrays
|
|
of indexes.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[index]` *(...(number|number[]|string|string[])*: The indexes of `collection` to retrieve, specified as individual indexes or arrays of indexes.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of elements corresponding to the
|
|
provided indexes.
|
|
|
|
#### Example
|
|
```js
|
|
_.at(['a', 'b', 'c', 'd', 'e'], [0, 2, 4]);
|
|
// => ['a', 'c', 'e']
|
|
|
|
_.at(['fred', 'barney', 'pebbles'], 0, 2);
|
|
// => ['fred', 'pebbles']
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_containscollection-target-fromindex0"></a>`_.contains(collection, target, [fromIndex=0])`
|
|
<a href="#_containscollection-target-fromindex0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3340 "View in source") [Ⓣ][1]
|
|
|
|
Checks if a given value is present in a collection using strict equality
|
|
for comparisons, i.e. `===`. If `fromIndex` is negative, it is used as the
|
|
offset from the end of the collection.
|
|
|
|
#### Aliases
|
|
*_.include*
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `target` *(*)*: The value to check for.
|
|
3. `[fromIndex=0]` *(number)*: The index to search from.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `target` element is found, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.contains([1, 2, 3], 1);
|
|
// => true
|
|
|
|
_.contains([1, 2, 3], 1, 2);
|
|
// => false
|
|
|
|
_.contains({ 'name': 'fred', 'age': 40 }, 'fred');
|
|
// => true
|
|
|
|
_.contains('pebbles', 'eb');
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_countbycollection-callbackidentity-thisarg"></a>`_.countBy(collection, [callback=identity], [thisArg])`
|
|
<a href="#_countbycollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3395 "View in source") [Ⓣ][1]
|
|
|
|
Creates an object composed of keys generated from the results of running
|
|
each element of `collection` through the callback. The corresponding value
|
|
of each key is the number of times the key was returned by the callback.
|
|
The callback is bound to `thisArg` and invoked with three arguments;
|
|
(value, index|key, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns the composed aggregate object.
|
|
|
|
#### Example
|
|
```js
|
|
_.countBy([4.3, 6.1, 6.4], function(num) { return Math.floor(num); });
|
|
// => { '4': 1, '6': 2 }
|
|
|
|
_.countBy([4.3, 6.1, 6.4], function(num) { return this.floor(num); }, Math);
|
|
// => { '4': 1, '6': 2 }
|
|
|
|
_.countBy(['one', 'two', 'three'], 'length');
|
|
// => { '3': 2, '5': 1 }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_everycollection-callbackidentity-thisarg"></a>`_.every(collection, [callback=identity], [thisArg])`
|
|
<a href="#_everycollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3440 "View in source") [Ⓣ][1]
|
|
|
|
Checks if the given callback returns truey value for **all** elements of
|
|
a collection. The callback is bound to `thisArg` and invoked with three
|
|
arguments; (value, index|key, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Aliases
|
|
*_.all*
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if all elements passed the callback check,
|
|
else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.every([true, 1, null, 'yes']);
|
|
// => false
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.every(characters, 'age');
|
|
// => true
|
|
|
|
// using "_.where" callback shorthand
|
|
_.every(characters, { 'age': 36 });
|
|
// => false
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_filtercollection-callbackidentity-thisarg"></a>`_.filter(collection, [callback=identity], [thisArg])`
|
|
<a href="#_filtercollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3501 "View in source") [Ⓣ][1]
|
|
|
|
Iterates over elements of a collection, returning an array of all elements
|
|
the callback returns truey for. The callback is bound to `thisArg` and
|
|
invoked with three arguments; (value, index|key, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Aliases
|
|
*_.select*
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of elements that passed the callback check.
|
|
|
|
#### Example
|
|
```js
|
|
var evens = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });
|
|
// => [2, 4, 6]
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36, 'blocked': false },
|
|
{ 'name': 'fred', 'age': 40, 'blocked': true }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.filter(characters, 'blocked');
|
|
// => [{ 'name': 'fred', 'age': 40, 'blocked': true }]
|
|
|
|
// using "_.where" callback shorthand
|
|
_.filter(characters, { 'age': 36 });
|
|
// => [{ 'name': 'barney', 'age': 36, 'blocked': false }]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_findcollection-callbackidentity-thisarg"></a>`_.find(collection, [callback=identity], [thisArg])`
|
|
<a href="#_findcollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3568 "View in source") [Ⓣ][1]
|
|
|
|
Iterates over elements of a collection, returning the first element that
|
|
the callback returns truey for. The callback is bound to `thisArg` and
|
|
invoked with three arguments; (value, index|key, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Aliases
|
|
*_.detect, _.findWhere*
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the found element, else `undefined`.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36, 'blocked': false },
|
|
{ 'name': 'fred', 'age': 40, 'blocked': true },
|
|
{ 'name': 'pebbles', 'age': 1, 'blocked': false }
|
|
];
|
|
|
|
_.find(characters, function(chr) {
|
|
return chr.age < 40;
|
|
});
|
|
// => { 'name': 'barney', 'age': 36, 'blocked': false }
|
|
|
|
// using "_.where" callback shorthand
|
|
_.find(characters, { 'age': 1 });
|
|
// => { 'name': 'pebbles', 'age': 1, 'blocked': false }
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.find(characters, 'blocked');
|
|
// => { 'name': 'fred', 'age': 40, 'blocked': true }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_findlastcollection-callbackidentity-thisarg"></a>`_.findLast(collection, [callback=identity], [thisArg])`
|
|
<a href="#_findlastcollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3613 "View in source") [Ⓣ][1]
|
|
|
|
This method is like `_.find` except that it iterates over elements
|
|
of a `collection` from right to left.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the found element, else `undefined`.
|
|
|
|
#### Example
|
|
```js
|
|
_.findLast([1, 2, 3, 4], function(num) {
|
|
return num % 2 == 1;
|
|
});
|
|
// => 3
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_foreachcollection-callbackidentity-thisarg"></a>`_.forEach(collection, [callback=identity], [thisArg])`
|
|
<a href="#_foreachcollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3651 "View in source") [Ⓣ][1]
|
|
|
|
Iterates over elements of a collection, executing the callback for each
|
|
element. The callback is bound to `thisArg` and invoked with three arguments;
|
|
(value, index|key, collection). Callbacks may exit iteration early by
|
|
explicitly returning `false`.
|
|
<br>
|
|
<br>
|
|
Note: As with other "Collections" methods, objects with a `length` property
|
|
are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
|
|
may be used for object iteration.
|
|
|
|
#### Aliases
|
|
*_.each*
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function)*: The function called per iteration.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array|Object|string)*: Returns `collection`.
|
|
|
|
#### Example
|
|
```js
|
|
_([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');
|
|
// => logs each number and returns '1,2,3'
|
|
|
|
_.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });
|
|
// => logs each number and returns the object (property order is not guaranteed across environments)
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_foreachrightcollection-callbackidentity-thisarg"></a>`_.forEachRight(collection, [callback=identity], [thisArg])`
|
|
<a href="#_foreachrightcollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3684 "View in source") [Ⓣ][1]
|
|
|
|
This method is like `_.forEach` except that it iterates over elements
|
|
of a `collection` from right to left.
|
|
|
|
#### Aliases
|
|
*_.eachRight*
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function)*: The function called per iteration.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array|Object|string)*: Returns `collection`.
|
|
|
|
#### Example
|
|
```js
|
|
_([1, 2, 3]).forEachRight(function(num) { console.log(num); }).join(',');
|
|
// => logs each number from right to left and returns '3,2,1'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_groupbycollection-callbackidentity-thisarg"></a>`_.groupBy(collection, [callback=identity], [thisArg])`
|
|
<a href="#_groupbycollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3745 "View in source") [Ⓣ][1]
|
|
|
|
Creates an object composed of keys generated from the results of running
|
|
each element of a collection through the callback. The corresponding value
|
|
of each key is an array of the elements responsible for generating the key.
|
|
The callback is bound to `thisArg` and invoked with three arguments;
|
|
(value, index|key, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns the composed aggregate object.
|
|
|
|
#### Example
|
|
```js
|
|
_.groupBy([4.2, 6.1, 6.4], function(num) { return Math.floor(num); });
|
|
// => { '4': [4.2], '6': [6.1, 6.4] }
|
|
|
|
_.groupBy([4.2, 6.1, 6.4], function(num) { return this.floor(num); }, Math);
|
|
// => { '4': [4.2], '6': [6.1, 6.4] }
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.groupBy(['one', 'two', 'three'], 'length');
|
|
// => { '3': ['one', 'two'], '5': ['three'] }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_indexbycollection-callbackidentity-thisarg"></a>`_.indexBy(collection, [callback=identity], [thisArg])`
|
|
<a href="#_indexbycollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3788 "View in source") [Ⓣ][1]
|
|
|
|
Creates an object composed of keys generated from the results of running
|
|
each element of the collection through the given callback. The corresponding
|
|
value of each key is the last element responsible for generating the key.
|
|
The callback is bound to `thisArg` and invoked with three arguments;
|
|
(value, index|key, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns the composed aggregate object.
|
|
|
|
#### Example
|
|
```js
|
|
var keys = [
|
|
{ 'dir': 'left', 'code': 97 },
|
|
{ 'dir': 'right', 'code': 100 }
|
|
];
|
|
|
|
_.indexBy(keys, 'dir');
|
|
// => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
|
|
|
|
_.indexBy(keys, function(key) { return String.fromCharCode(key.code); });
|
|
// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
|
|
|
|
_.indexBy(characters, function(key) { this.fromCharCode(key.code); }, String);
|
|
// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_invokecollection-methodname-arg"></a>`_.invoke(collection, methodName, [arg])`
|
|
<a href="#_invokecollection-methodname-arg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3814 "View in source") [Ⓣ][1]
|
|
|
|
Invokes the method named by `methodName` on each element in the `collection`
|
|
returning an array of the results of each invoked method. Additional arguments
|
|
will be provided to each invoked method. If `methodName` is a function it
|
|
will be invoked for, and `this` bound to, each element in the `collection`.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `methodName` *(Function|string)*: The name of the method to invoke or the function invoked per iteration.
|
|
3. `[arg]` *(...*)*: Arguments to invoke the method with.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of the results of each invoked method.
|
|
|
|
#### Example
|
|
```js
|
|
_.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
|
|
// => [[1, 5, 7], [1, 2, 3]]
|
|
|
|
_.invoke([123, 456], String.prototype.split, '');
|
|
// => [['1', '2', '3'], ['4', '5', '6']]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_mapcollection-callbackidentity-thisarg"></a>`_.map(collection, [callback=identity], [thisArg])`
|
|
<a href="#_mapcollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3866 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array of values by running each element in the collection
|
|
through the callback. The callback is bound to `thisArg` and invoked with
|
|
three arguments; (value, index|key, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Aliases
|
|
*_.collect*
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of the results of each `callback` execution.
|
|
|
|
#### Example
|
|
```js
|
|
_.map([1, 2, 3], function(num) { return num * 3; });
|
|
// => [3, 6, 9]
|
|
|
|
_.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });
|
|
// => [3, 6, 9] (property order is not guaranteed across environments)
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.map(characters, 'name');
|
|
// => ['barney', 'fred']
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_maxcollection-callbackidentity-thisarg"></a>`_.max(collection, [callback=identity], [thisArg])`
|
|
<a href="#_maxcollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3924 "View in source") [Ⓣ][1]
|
|
|
|
Retrieves the maximum value of a collection. If the collection is empty or
|
|
falsey `-Infinity` is returned. If a callback is provided it will be executed
|
|
for each value in the collection to generate the criterion by which the value
|
|
is ranked. The callback is bound to `thisArg` and invoked with three
|
|
arguments; (value, index, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the maximum value.
|
|
|
|
#### Example
|
|
```js
|
|
_.max([4, 2, 8, 6]);
|
|
// => 8
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 }
|
|
];
|
|
|
|
_.max(characters, function(chr) { return chr.age; });
|
|
// => { 'name': 'fred', 'age': 40 };
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.max(characters, 'age');
|
|
// => { 'name': 'fred', 'age': 40 };
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_mincollection-callbackidentity-thisarg"></a>`_.min(collection, [callback=identity], [thisArg])`
|
|
<a href="#_mincollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3999 "View in source") [Ⓣ][1]
|
|
|
|
Retrieves the minimum value of a collection. If the collection is empty or
|
|
falsey `Infinity` is returned. If a callback is provided it will be executed
|
|
for each value in the collection to generate the criterion by which the value
|
|
is ranked. The callback is bound to `thisArg` and invoked with three
|
|
arguments; (value, index, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the minimum value.
|
|
|
|
#### Example
|
|
```js
|
|
_.min([4, 2, 8, 6]);
|
|
// => 2
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 }
|
|
];
|
|
|
|
_.min(characters, function(chr) { return chr.age; });
|
|
// => { 'name': 'barney', 'age': 36 };
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.min(characters, 'age');
|
|
// => { 'name': 'barney', 'age': 36 };
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_pluckcollection-property"></a>`_.pluck(collection, property)`
|
|
<a href="#_pluckcollection-property">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4054 "View in source") [Ⓣ][1]
|
|
|
|
Retrieves the value of a specified property from all elements in the collection.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `property` *(string)*: The name of the property to pluck.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of property values.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 }
|
|
];
|
|
|
|
_.pluck(characters, 'name');
|
|
// => ['barney', 'fred']
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_reducecollection-callbackidentity-accumulator-thisarg"></a>`_.reduce(collection, [callback=identity], [accumulator], [thisArg])`
|
|
<a href="#_reducecollection-callbackidentity-accumulator-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4086 "View in source") [Ⓣ][1]
|
|
|
|
Reduces a collection to a value which is the accumulated result of running
|
|
each element in the collection through the callback, where each successive
|
|
callback execution consumes the return value of the previous execution. If
|
|
`accumulator` is not provided the first element of the collection will be
|
|
used as the initial `accumulator` value. The callback is bound to `thisArg`
|
|
and invoked with four arguments; (accumulator, value, index|key, collection).
|
|
|
|
#### Aliases
|
|
*_.foldl, _.inject*
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function)*: The function called per iteration.
|
|
3. `[accumulator]` *(*)*: Initial value of the accumulator.
|
|
4. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the accumulated value.
|
|
|
|
#### Example
|
|
```js
|
|
var sum = _.reduce([1, 2, 3], function(sum, num) {
|
|
return sum + num;
|
|
});
|
|
// => 6
|
|
|
|
var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {
|
|
result[key] = num * 3;
|
|
return result;
|
|
}, {});
|
|
// => { 'a': 3, 'b': 6, 'c': 9 }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_reducerightcollection-callbackidentity-accumulator-thisarg"></a>`_.reduceRight(collection, [callback=identity], [accumulator], [thisArg])`
|
|
<a href="#_reducerightcollection-callbackidentity-accumulator-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4129 "View in source") [Ⓣ][1]
|
|
|
|
This method is like `_.reduce` except that it iterates over elements
|
|
of a `collection` from right to left.
|
|
|
|
#### Aliases
|
|
*_.foldr*
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function)*: The function called per iteration.
|
|
3. `[accumulator]` *(*)*: Initial value of the accumulator.
|
|
4. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the accumulated value.
|
|
|
|
#### Example
|
|
```js
|
|
var list = [[0, 1], [2, 3], [4, 5]];
|
|
var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []);
|
|
// => [4, 5, 2, 3, 0, 1]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_rejectcollection-callbackidentity-thisarg"></a>`_.reject(collection, [callback=identity], [thisArg])`
|
|
<a href="#_rejectcollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4178 "View in source") [Ⓣ][1]
|
|
|
|
The opposite of `_.filter` this method returns the elements of a
|
|
collection that the callback does **not** return truey for.
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of elements that failed the callback check.
|
|
|
|
#### Example
|
|
```js
|
|
var odds = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });
|
|
// => [1, 3, 5]
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36, 'blocked': false },
|
|
{ 'name': 'fred', 'age': 40, 'blocked': true }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.reject(characters, 'blocked');
|
|
// => [{ 'name': 'barney', 'age': 36, 'blocked': false }]
|
|
|
|
// using "_.where" callback shorthand
|
|
_.reject(characters, { 'age': 36 });
|
|
// => [{ 'name': 'fred', 'age': 40, 'blocked': true }]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_samplecollection-n"></a>`_.sample(collection, [n])`
|
|
<a href="#_samplecollection-n">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4204 "View in source") [Ⓣ][1]
|
|
|
|
Retrieves a random element or `n` random elements from a collection.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to sample.
|
|
2. `[n]` *(number)*: The number of elements to sample.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns the random sample(s) of `collection`.
|
|
|
|
#### Example
|
|
```js
|
|
_.sample([1, 2, 3, 4]);
|
|
// => 2
|
|
|
|
_.sample([1, 2, 3, 4], 2);
|
|
// => [3, 1]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_shufflecollection"></a>`_.shuffle(collection)`
|
|
<a href="#_shufflecollection">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4232 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array of shuffled values, using a version of the Fisher-Yates
|
|
shuffle. See http://en.wikipedia.org/wiki/Fisher-Yates_shuffle.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to shuffle.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new shuffled collection.
|
|
|
|
#### Example
|
|
```js
|
|
_.shuffle([1, 2, 3, 4, 5, 6]);
|
|
// => [4, 1, 6, 3, 5, 2]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_sizecollection"></a>`_.size(collection)`
|
|
<a href="#_sizecollection">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4265 "View in source") [Ⓣ][1]
|
|
|
|
Gets the size of the `collection` by returning `collection.length` for arrays
|
|
and array-like objects or the number of own enumerable properties for objects.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to inspect.
|
|
|
|
#### Returns
|
|
*(number)*: Returns `collection.length` or number of own enumerable properties.
|
|
|
|
#### Example
|
|
```js
|
|
_.size([1, 2]);
|
|
// => 2
|
|
|
|
_.size({ 'one': 1, 'two': 2, 'three': 3 });
|
|
// => 3
|
|
|
|
_.size('pebbles');
|
|
// => 7
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_somecollection-callbackidentity-thisarg"></a>`_.some(collection, [callback=identity], [thisArg])`
|
|
<a href="#_somecollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4312 "View in source") [Ⓣ][1]
|
|
|
|
Checks if the callback returns a truey value for **any** element of a
|
|
collection. The function returns as soon as it finds a passing value and
|
|
does not iterate over the entire collection. The callback is bound to
|
|
`thisArg` and invoked with three arguments; (value, index|key, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Aliases
|
|
*_.any*
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if any element passed the callback check,
|
|
else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.some([null, 0, 'yes', false], Boolean);
|
|
// => true
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36, 'blocked': false },
|
|
{ 'name': 'fred', 'age': 40, 'blocked': true }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.some(characters, 'blocked');
|
|
// => true
|
|
|
|
// using "_.where" callback shorthand
|
|
_.some(characters, { 'age': 1 });
|
|
// => false
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_sortbycollection-callbackidentity-thisarg"></a>`_.sortBy(collection, [callback=identity], [thisArg])`
|
|
<a href="#_sortbycollection-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4382 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array of elements, sorted in ascending order by the results of
|
|
running each element in a collection through the callback. This method
|
|
performs a stable sort, that is, it will preserve the original sort order
|
|
of equal elements. The callback is bound to `thisArg` and invoked with
|
|
three arguments; (value, index|key, collection).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an array of property names is provided for `callback` the collection
|
|
will be sorted by each property value.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `[callback=identity]` *(Array|Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of sorted elements.
|
|
|
|
#### Example
|
|
```js
|
|
_.sortBy([1, 2, 3], function(num) { return Math.sin(num); });
|
|
// => [3, 1, 2]
|
|
|
|
_.sortBy([1, 2, 3], function(num) { return this.sin(num); }, Math);
|
|
// => [3, 1, 2]
|
|
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 },
|
|
{ 'name': 'barney', 'age': 26 },
|
|
{ 'name': 'fred', 'age': 30 }
|
|
];
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.map(_.sortBy(characters, 'age'), _.values);
|
|
// => [['barney', 26], ['fred', 30], ['barney', 36], ['fred', 40]]
|
|
|
|
// sorting by multiple properties
|
|
_.map(_.sortBy(characters, ['name', 'age']), _.values);
|
|
// = > [['barney', 26], ['barney', 36], ['fred', 30], ['fred', 40]]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_toarraycollection"></a>`_.toArray(collection)`
|
|
<a href="#_toarraycollection">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4428 "View in source") [Ⓣ][1]
|
|
|
|
Converts the `collection` to an array.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to convert.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns the new converted array.
|
|
|
|
#### Example
|
|
```js
|
|
(function() { return _.toArray(arguments).slice(1); })(1, 2, 3, 4);
|
|
// => [2, 3, 4]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_wherecollection-props"></a>`_.where(collection, props)`
|
|
<a href="#_wherecollection-props">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L4462 "View in source") [Ⓣ][1]
|
|
|
|
Performs a deep comparison of each element in a `collection` to the given
|
|
`properties` object, returning an array of all elements that have equivalent
|
|
property values.
|
|
|
|
#### Arguments
|
|
1. `collection` *(Array|Object|string)*: The collection to iterate over.
|
|
2. `props` *(Object)*: The object of property values to filter by.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new array of elements that have the given properties.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36, 'pets': ['hoppy'] },
|
|
{ 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }
|
|
];
|
|
|
|
_.where(characters, { 'age': 36 });
|
|
// => [{ 'name': 'barney', 'age': 36, 'pets': ['hoppy'] }]
|
|
|
|
_.where(characters, { 'pets': ['dino'] });
|
|
// => [{ 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `“Functions” Methods`
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_aftern-func"></a>`_.after(n, func)`
|
|
<a href="#_aftern-func">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5505 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that executes `func`, with the `this` binding and
|
|
arguments of the created function, only after being called `n` times.
|
|
|
|
#### Arguments
|
|
1. `n` *(number)*: The number of times the function must be called before `func` is executed.
|
|
2. `func` *(Function)*: The function to restrict.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new restricted function.
|
|
|
|
#### Example
|
|
```js
|
|
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 all saves have completed
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_bindfunc-thisarg-arg"></a>`_.bind(func, [thisArg], [arg])`
|
|
<a href="#_bindfunc-thisarg-arg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5538 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that, when called, invokes `func` with the `this`
|
|
binding of `thisArg` and prepends any additional `bind` arguments to those
|
|
provided to the bound function.
|
|
|
|
#### Arguments
|
|
1. `func` *(Function)*: The function to bind.
|
|
2. `[thisArg]` *(*)*: The `this` binding of `func`.
|
|
3. `[arg]` *(...*)*: Arguments to be partially applied.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new bound function.
|
|
|
|
#### Example
|
|
```js
|
|
var func = function(greeting) {
|
|
return greeting + ' ' + this.name;
|
|
};
|
|
|
|
func = _.bind(func, { 'name': 'fred' }, 'hi');
|
|
func();
|
|
// => 'hi fred'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_bindallobject-methodname"></a>`_.bindAll(object, [methodName])`
|
|
<a href="#_bindallobject-methodname">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5568 "View in source") [Ⓣ][1]
|
|
|
|
Binds methods of an object to the object itself, overwriting the existing
|
|
method. Method names may be specified as individual arguments or as arrays
|
|
of method names. If no method names are provided all the function properties
|
|
of `object` will be bound.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to bind and assign the bound methods to.
|
|
2. `[methodName]` *(...string)*: The object method names to bind, specified as individual method names or arrays of method names.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns `object`.
|
|
|
|
#### Example
|
|
```js
|
|
var view = {
|
|
'label': 'docs',
|
|
'onClick': function() { console.log('clicked ' + this.label); }
|
|
};
|
|
|
|
_.bindAll(view);
|
|
jQuery('#docs').on('click', view.onClick);
|
|
// => logs 'clicked docs', when the button is clicked
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_bindkeyobject-key-arg"></a>`_.bindKey(object, key, [arg])`
|
|
<a href="#_bindkeyobject-key-arg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5614 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that, when called, invokes the method at `object[key]`
|
|
and prepends any additional `bindKey` arguments to those provided to the bound
|
|
function. This method differs from `_.bind` by allowing bound functions to
|
|
reference methods that will be redefined or don't yet exist.
|
|
See http://michaux.ca/articles/lazy-function-definition-pattern.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object the method belongs to.
|
|
2. `key` *(string)*: The key of the method.
|
|
3. `[arg]` *(...*)*: Arguments to be partially applied.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new bound function.
|
|
|
|
#### Example
|
|
```js
|
|
var object = {
|
|
'name': 'fred',
|
|
'greet': function(greeting) {
|
|
return greeting + ' ' + this.name;
|
|
}
|
|
};
|
|
|
|
var func = _.bindKey(object, 'greet', 'hi');
|
|
func();
|
|
// => 'hi fred'
|
|
|
|
object.greet = function(greeting) {
|
|
return greeting + 'ya ' + this.name + '!';
|
|
};
|
|
|
|
func();
|
|
// => 'hiya fred!'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_composefunc"></a>`_.compose([func])`
|
|
<a href="#_composefunc">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5650 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that is the composition of the provided functions,
|
|
where each function consumes the return value of the function that follows.
|
|
For example, composing the functions `f()`, `g()`, and `h()` produces `f(g(h()))`.
|
|
Each function is executed with the `this` binding of the composed function.
|
|
|
|
#### Arguments
|
|
1. `[func]` *(...Function)*: Functions to compose.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new composed function.
|
|
|
|
#### Example
|
|
```js
|
|
var realNameMap = {
|
|
'pebbles': 'penelope'
|
|
};
|
|
|
|
var format = function(name) {
|
|
name = realNameMap[name.toLowerCase()] || name;
|
|
return name.charAt(0).toUpperCase() + name.slice(1).toLowerCase();
|
|
};
|
|
|
|
var greet = function(formatted) {
|
|
return 'Hiya ' + formatted + '!';
|
|
};
|
|
|
|
var welcome = _.compose(greet, format);
|
|
welcome('pebbles');
|
|
// => 'Hiya Penelope!'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_curryfunc-arityfunclength"></a>`_.curry(func, [arity=func.length])`
|
|
<a href="#_curryfunc-arityfunclength">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5698 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function which accepts one or more arguments of `func` that when
|
|
invoked either executes `func` returning its result, if all `func` arguments
|
|
have been provided, or returns a function that accepts one or more of the
|
|
remaining `func` arguments, and so on. The arity of `func` can be specified
|
|
if `func.length` is not sufficient.
|
|
|
|
#### Arguments
|
|
1. `func` *(Function)*: The function to curry.
|
|
2. `[arity=func.length]` *(number)*: The arity of `func`.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new curried function.
|
|
|
|
#### Example
|
|
```js
|
|
var curried = _.curry(function(a, b, c) {
|
|
console.log(a + b + c);
|
|
});
|
|
|
|
curried(1)(2)(3);
|
|
// => 6
|
|
|
|
curried(1, 2)(3);
|
|
// => 6
|
|
|
|
curried(1, 2, 3);
|
|
// => 6
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_debouncefunc-wait-options"></a>`_.debounce(func, wait, [options])`
|
|
<a href="#_debouncefunc-wait-options">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5742 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that will delay the execution of `func` until after
|
|
`wait` milliseconds have elapsed since the last time it was invoked.
|
|
Provide an options object to indicate that `func` should be invoked on
|
|
the leading and/or trailing edge of the `wait` timeout. Subsequent calls
|
|
to the debounced function will return the result of the last `func` call.
|
|
<br>
|
|
<br>
|
|
Note: If `leading` and `trailing` options are `true` `func` will be called
|
|
on the trailing edge of the timeout only if the the debounced function is
|
|
invoked more than once during the `wait` timeout.
|
|
|
|
#### Arguments
|
|
1. `func` *(Function)*: The function to debounce.
|
|
2. `wait` *(number)*: The number of milliseconds to delay.
|
|
3. `[options]` *(Object)*: The options object.
|
|
4. `[options.leading=false]` *(boolean)*: Specify execution on the leading edge of the timeout.
|
|
5. `[options.maxWait]` *(number)*: The maximum time `func` is allowed to be delayed before it's called.
|
|
6. `[options.trailing=true]` *(boolean)*: Specify execution on the trailing edge of the timeout.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new debounced function.
|
|
|
|
#### Example
|
|
```js
|
|
// avoid costly calculations while the window size is in flux
|
|
var lazyLayout = _.debounce(calculateLayout, 150);
|
|
jQuery(window).on('resize', lazyLayout);
|
|
|
|
// execute `sendMail` when the click event is fired, debouncing subsequent calls
|
|
jQuery('#postbox').on('click', _.debounce(sendMail, 300, {
|
|
'leading': true,
|
|
'trailing': false
|
|
});
|
|
|
|
// ensure `batchLog` is executed once after 1 second of debounced calls
|
|
var source = new EventSource('/stream');
|
|
source.addEventListener('message', _.debounce(batchLog, 250, {
|
|
'maxWait': 1000
|
|
}, false);
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_deferfunc-arg"></a>`_.defer(func, [arg])`
|
|
<a href="#_deferfunc-arg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5858 "View in source") [Ⓣ][1]
|
|
|
|
Defers executing the `func` function until the current call stack has cleared.
|
|
Additional arguments will be provided to `func` when it is invoked.
|
|
|
|
#### Arguments
|
|
1. `func` *(Function)*: The function to defer.
|
|
2. `[arg]` *(...*)*: Arguments to invoke the function with.
|
|
|
|
#### Returns
|
|
*(number)*: Returns the timer id.
|
|
|
|
#### Example
|
|
```js
|
|
_.defer(function(text) { console.log(text); }, 'deferred');
|
|
// logs 'deferred' after one or more milliseconds
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_delayfunc-wait-arg"></a>`_.delay(func, wait, [arg])`
|
|
<a href="#_delayfunc-wait-arg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5882 "View in source") [Ⓣ][1]
|
|
|
|
Executes the `func` function after `wait` milliseconds. Additional arguments
|
|
will be provided to `func` when it is invoked.
|
|
|
|
#### Arguments
|
|
1. `func` *(Function)*: The function to delay.
|
|
2. `wait` *(number)*: The number of milliseconds to delay execution.
|
|
3. `[arg]` *(...*)*: Arguments to invoke the function with.
|
|
|
|
#### Returns
|
|
*(number)*: Returns the timer id.
|
|
|
|
#### Example
|
|
```js
|
|
_.delay(function(text) { console.log(text); }, 1000, 'later');
|
|
// => logs 'later' after one second
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_memoizefunc-resolver"></a>`_.memoize(func, [resolver])`
|
|
<a href="#_memoizefunc-resolver">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5927 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that memoizes the result of `func`. If `resolver` is
|
|
provided it will be used to determine the cache key for storing the result
|
|
based on the arguments provided to the memoized function. By default, the
|
|
first argument provided to the memoized function is used as the cache key.
|
|
The `func` is executed with the `this` binding of the memoized function.
|
|
The result cache is exposed as the `cache` property on the memoized function.
|
|
|
|
#### Arguments
|
|
1. `func` *(Function)*: The function to have its output memoized.
|
|
2. `[resolver]` *(Function)*: A function used to resolve the cache key.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new memoizing function.
|
|
|
|
#### Example
|
|
```js
|
|
var fibonacci = _.memoize(function(n) {
|
|
return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);
|
|
});
|
|
|
|
fibonacci(9)
|
|
// => 34
|
|
|
|
var data = {
|
|
'fred': { 'name': 'fred', 'age': 40 },
|
|
'pebbles': { 'name': 'pebbles', 'age': 1 }
|
|
};
|
|
|
|
// modifying the result cache
|
|
var get = _.memoize(function(name) { return data[name]; }, _.identity);
|
|
get('pebbles');
|
|
// => { 'name': 'pebbles', 'age': 1 }
|
|
|
|
get.cache.pebbles.name = 'penelope';
|
|
get('pebbles');
|
|
// => { 'name': 'penelope', 'age': 1 }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_oncefunc"></a>`_.once(func)`
|
|
<a href="#_oncefunc">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5960 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that is restricted to execute `func` once. Repeat calls to
|
|
the function will return the value of the first call. The `func` is executed
|
|
with the `this` binding of the created function.
|
|
|
|
#### Arguments
|
|
1. `func` *(Function)*: The function to restrict.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new restricted function.
|
|
|
|
#### Example
|
|
```js
|
|
var initialize = _.once(createApplication);
|
|
initialize();
|
|
initialize();
|
|
// `initialize` executes `createApplication` once
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_partialfunc-arg"></a>`_.partial(func, [arg])`
|
|
<a href="#_partialfunc-arg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L5998 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that, when called, invokes `func` with any additional
|
|
`partial` arguments prepended to those provided to the new function. This
|
|
method is similar to `_.bind` except it does **not** alter the `this` binding.
|
|
|
|
#### Arguments
|
|
1. `func` *(Function)*: The function to partially apply arguments to.
|
|
2. `[arg]` *(...*)*: Arguments to be partially applied.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new partially applied function.
|
|
|
|
#### Example
|
|
```js
|
|
var greet = function(greeting, name) { return greeting + ' ' + name; };
|
|
var hi = _.partial(greet, 'hi');
|
|
hi('fred');
|
|
// => 'hi fred'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_partialrightfunc-arg"></a>`_.partialRight(func, [arg])`
|
|
<a href="#_partialrightfunc-arg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6029 "View in source") [Ⓣ][1]
|
|
|
|
This method is like `_.partial` except that `partial` arguments are
|
|
appended to those provided to the new function.
|
|
|
|
#### Arguments
|
|
1. `func` *(Function)*: The function to partially apply arguments to.
|
|
2. `[arg]` *(...*)*: Arguments to be partially applied.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new partially applied function.
|
|
|
|
#### Example
|
|
```js
|
|
var defaultsDeep = _.partialRight(_.merge, _.defaults);
|
|
|
|
var options = {
|
|
'variable': 'data',
|
|
'imports': { 'jq': $ }
|
|
};
|
|
|
|
defaultsDeep(options, _.templateSettings);
|
|
|
|
options.variable
|
|
// => 'data'
|
|
|
|
options.imports
|
|
// => { '_': _, 'jq': $ }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_throttlefunc-wait-options"></a>`_.throttle(func, wait, [options])`
|
|
<a href="#_throttlefunc-wait-options">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6064 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that, when executed, will only call the `func` function
|
|
at most once per every `wait` milliseconds. Provide an options object to
|
|
indicate that `func` should be invoked on the leading and/or trailing edge
|
|
of the `wait` timeout. Subsequent calls to the throttled function will
|
|
return the result of the last `func` call.
|
|
<br>
|
|
<br>
|
|
Note: If `leading` and `trailing` options are `true` `func` will be called
|
|
on the trailing edge of the timeout only if the the throttled function is
|
|
invoked more than once during the `wait` timeout.
|
|
|
|
#### Arguments
|
|
1. `func` *(Function)*: The function to throttle.
|
|
2. `wait` *(number)*: The number of milliseconds to throttle executions to.
|
|
3. `[options]` *(Object)*: The options object.
|
|
4. `[options.leading=true]` *(boolean)*: Specify execution on the leading edge of the timeout.
|
|
5. `[options.trailing=true]` *(boolean)*: Specify execution on the trailing edge of the timeout.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new throttled function.
|
|
|
|
#### Example
|
|
```js
|
|
// avoid excessively updating the position while scrolling
|
|
var throttled = _.throttle(updatePosition, 100);
|
|
jQuery(window).on('scroll', throttled);
|
|
|
|
// execute `renewToken` when the click event is fired, but not more than once every 5 minutes
|
|
jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {
|
|
'trailing': false
|
|
}));
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_wrapvalue-wrapper"></a>`_.wrap(value, wrapper)`
|
|
<a href="#_wrapvalue-wrapper">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6105 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that provides `value` to the wrapper function as its
|
|
first argument. Additional arguments provided to the function are appended
|
|
to those provided to the wrapper function. The wrapper is executed with
|
|
the `this` binding of the created function.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to wrap.
|
|
2. `wrapper` *(Function)*: The wrapper function.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new function.
|
|
|
|
#### Example
|
|
```js
|
|
var p = _.wrap(_.escape, function(func, text) {
|
|
return '<p>' + func(text) + '</p>';
|
|
});
|
|
|
|
p('Fred, Wilma, & Pebbles');
|
|
// => '<p>Fred, Wilma, & Pebbles</p>'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `“Objects” Methods`
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_assignobject-source-callback-thisarg"></a>`_.assign(object, [source], [callback], [thisArg])`
|
|
<a href="#_assignobject-source-callback-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2085 "View in source") [Ⓣ][1]
|
|
|
|
Assigns own enumerable properties of source object(s) to the destination
|
|
object. Subsequent sources will overwrite property assignments of previous
|
|
sources. If a callback is provided it will be executed to produce the
|
|
assigned values. The callback is bound to `thisArg` and invoked with two
|
|
arguments; (objectValue, sourceValue).
|
|
|
|
#### Aliases
|
|
*_.extend*
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The destination object.
|
|
2. `[source]` *(...Object)*: The source objects.
|
|
3. `[callback]` *(Function)*: The function to customize assigning values.
|
|
4. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns the destination object.
|
|
|
|
#### Example
|
|
```js
|
|
_.assign({ 'name': 'fred' }, { 'employer': 'slate' });
|
|
// => { 'name': 'fred', 'employer': 'slate' }
|
|
|
|
var defaults = _.partialRight(_.assign, function(a, b) {
|
|
return typeof a == 'undefined' ? b : a;
|
|
});
|
|
|
|
var object = { 'name': 'barney' };
|
|
defaults(object, { 'name': 'fred', 'employer': 'slate' });
|
|
// => { 'name': 'barney', 'employer': 'slate' }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_clonevalue-isdeepfalse-callback-thisarg"></a>`_.clone(value, [isDeep=false], [callback], [thisArg])`
|
|
<a href="#_clonevalue-isdeepfalse-callback-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2138 "View in source") [Ⓣ][1]
|
|
|
|
Creates a clone of `value`. If `isDeep` is `true` nested objects will also
|
|
be cloned, otherwise they will be assigned by reference. If a callback
|
|
is provided it will be executed to produce the cloned values. If the
|
|
callback returns `undefined` cloning will be handled by the method instead.
|
|
The callback is bound to `thisArg` and invoked with one argument; (value).
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to clone.
|
|
2. `[isDeep=false]` *(boolean)*: Specify a deep clone.
|
|
3. `[callback]` *(Function)*: The function to customize cloning values.
|
|
4. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the cloned value.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 }
|
|
];
|
|
|
|
var shallow = _.clone(characters);
|
|
shallow[0] === characters[0];
|
|
// => true
|
|
|
|
var deep = _.clone(characters, true);
|
|
deep[0] === characters[0];
|
|
// => false
|
|
|
|
_.mixin({
|
|
'clone': _.partialRight(_.clone, function(value) {
|
|
return _.isElement(value) ? value.cloneNode(false) : undefined;
|
|
})
|
|
});
|
|
|
|
var clone = _.clone(document.body);
|
|
clone.childNodes.length;
|
|
// => 0
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_clonedeepvalue-callback-thisarg"></a>`_.cloneDeep(value, [callback], [thisArg])`
|
|
<a href="#_clonedeepvalue-callback-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2190 "View in source") [Ⓣ][1]
|
|
|
|
Creates a deep clone of `value`. If a callback is provided it will be
|
|
executed to produce the cloned values. If the callback returns `undefined`
|
|
cloning will be handled by the method instead. The callback is bound to
|
|
`thisArg` and invoked with one argument; (value).
|
|
<br>
|
|
<br>
|
|
Note: This method is loosely based on the structured clone algorithm. Functions
|
|
and DOM nodes are **not** cloned. The enumerable properties of `arguments` objects and
|
|
objects created by constructors other than `Object` are cloned to plain `Object` objects.
|
|
See http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to deep clone.
|
|
2. `[callback]` *(Function)*: The function to customize cloning values.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the deep cloned value.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 }
|
|
];
|
|
|
|
var deep = _.cloneDeep(characters);
|
|
deep[0] === characters[0];
|
|
// => false
|
|
|
|
var view = {
|
|
'label': 'docs',
|
|
'node': element
|
|
};
|
|
|
|
var clone = _.cloneDeep(view, function(value) {
|
|
return _.isElement(value) ? value.cloneNode(true) : undefined;
|
|
});
|
|
|
|
clone.node == view.node;
|
|
// => false
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_createprototype-properties"></a>`_.create(prototype, [properties])`
|
|
<a href="#_createprototype-properties">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2225 "View in source") [Ⓣ][1]
|
|
|
|
Creates an object that inherits from the given `prototype` object. If a
|
|
`properties` object is provided its own enumerable properties are assigned
|
|
to the created object.
|
|
|
|
#### Arguments
|
|
1. `prototype` *(Object)*: The object to inherit from.
|
|
2. `[properties]` *(Object)*: The properties to assign to the object.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns the new object.
|
|
|
|
#### Example
|
|
```js
|
|
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
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_defaultsobject-source"></a>`_.defaults(object, [source])`
|
|
<a href="#_defaultsobject-source">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2250 "View in source") [Ⓣ][1]
|
|
|
|
Assigns own enumerable properties of source object(s) to the destination
|
|
object for all destination properties that resolve to `undefined`. Once a
|
|
property is set, additional defaults of the same property will be ignored.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The destination object.
|
|
2. `[source]` *(...Object)*: The source objects.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns the destination object.
|
|
|
|
#### Example
|
|
```js
|
|
var object = { 'name': 'barney' };
|
|
_.defaults(object, { 'name': 'fred', 'employer': 'slate' });
|
|
// => { 'name': 'barney', 'employer': 'slate' }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_findkeyobject-callbackidentity-thisarg"></a>`_.findKey(object, [callback=identity], [thisArg])`
|
|
<a href="#_findkeyobject-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2293 "View in source") [Ⓣ][1]
|
|
|
|
This method is like `_.findIndex` except that it returns the key of the
|
|
first element that passes the callback check, instead of the element itself.
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to search.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(string|undefined)*: Returns the key of the found element, else `undefined`.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = {
|
|
'barney': { 'age': 36, 'blocked': false },
|
|
'fred': { 'age': 40, 'blocked': true },
|
|
'pebbles': { 'age': 1, 'blocked': false }
|
|
};
|
|
|
|
_.findKey(characters, function(chr) {
|
|
return chr.age < 40;
|
|
});
|
|
// => 'barney' (property order is not guaranteed across environments)
|
|
|
|
// using "_.where" callback shorthand
|
|
_.findKey(characters, { 'age': 1 });
|
|
// => 'pebbles'
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.findKey(characters, 'blocked');
|
|
// => 'fred'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_findlastkeyobject-callbackidentity-thisarg"></a>`_.findLastKey(object, [callback=identity], [thisArg])`
|
|
<a href="#_findlastkeyobject-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2346 "View in source") [Ⓣ][1]
|
|
|
|
This method is like `_.findKey` except that it iterates over elements
|
|
of a `collection` in the opposite order.
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to search.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(string|undefined)*: Returns the key of the found element, else `undefined`.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = {
|
|
'barney': { 'age': 36, 'blocked': true },
|
|
'fred': { 'age': 40, 'blocked': false },
|
|
'pebbles': { 'age': 1, 'blocked': true }
|
|
};
|
|
|
|
_.findLastKey(characters, function(chr) {
|
|
return chr.age < 40;
|
|
});
|
|
// => returns `pebbles`, assuming `_.findKey` returns `barney`
|
|
|
|
// using "_.where" callback shorthand
|
|
_.findLastKey(characters, { 'age': 40 });
|
|
// => 'fred'
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.findLastKey(characters, 'blocked');
|
|
// => 'pebbles'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_forinobject-callbackidentity-thisarg"></a>`_.forIn(object, [callback=identity], [thisArg])`
|
|
<a href="#_forinobject-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2389 "View in source") [Ⓣ][1]
|
|
|
|
Iterates over own and inherited enumerable properties of an object,
|
|
executing the callback for each property. The callback is bound to `thisArg`
|
|
and invoked with three arguments; (value, key, object). Callbacks may exit
|
|
iteration early by explicitly returning `false`.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to iterate over.
|
|
2. `[callback=identity]` *(Function)*: The function called per iteration.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns `object`.
|
|
|
|
#### Example
|
|
```js
|
|
function Shape() {
|
|
this.x = 0;
|
|
this.y = 0;
|
|
}
|
|
|
|
Shape.prototype.move = function(x, y) {
|
|
this.x += x;
|
|
this.y += y;
|
|
};
|
|
|
|
_.forIn(new Shape, function(value, key) {
|
|
console.log(key);
|
|
});
|
|
// => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_forinrightobject-callbackidentity-thisarg"></a>`_.forInRight(object, [callback=identity], [thisArg])`
|
|
<a href="#_forinrightobject-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2421 "View in source") [Ⓣ][1]
|
|
|
|
This method is like `_.forIn` except that it iterates over elements
|
|
of a `collection` in the opposite order.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to iterate over.
|
|
2. `[callback=identity]` *(Function)*: The function called per iteration.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns `object`.
|
|
|
|
#### Example
|
|
```js
|
|
function Shape() {
|
|
this.x = 0;
|
|
this.y = 0;
|
|
}
|
|
|
|
Shape.prototype.move = function(x, y) {
|
|
this.x += x;
|
|
this.y += y;
|
|
};
|
|
|
|
_.forInRight(new Shape, function(value, key) {
|
|
console.log(key);
|
|
});
|
|
// => logs 'move', 'y', and 'x' assuming `_.forIn ` logs 'x', 'y', and 'move'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_forownobject-callbackidentity-thisarg"></a>`_.forOwn(object, [callback=identity], [thisArg])`
|
|
<a href="#_forownobject-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2459 "View in source") [Ⓣ][1]
|
|
|
|
Iterates over own enumerable properties of an object, executing the callback
|
|
for each property. The callback is bound to `thisArg` and invoked with three
|
|
arguments; (value, key, object). Callbacks may exit iteration early by
|
|
explicitly returning `false`.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to iterate over.
|
|
2. `[callback=identity]` *(Function)*: The function called per iteration.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns `object`.
|
|
|
|
#### Example
|
|
```js
|
|
_.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
|
|
console.log(key);
|
|
});
|
|
// => logs '0', '1', and 'length' (property order is not guaranteed across environments)
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_forownrightobject-callbackidentity-thisarg"></a>`_.forOwnRight(object, [callback=identity], [thisArg])`
|
|
<a href="#_forownrightobject-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2479 "View in source") [Ⓣ][1]
|
|
|
|
This method is like `_.forOwn` except that it iterates over elements
|
|
of a `collection` in the opposite order.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to iterate over.
|
|
2. `[callback=identity]` *(Function)*: The function called per iteration.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns `object`.
|
|
|
|
#### Example
|
|
```js
|
|
_.forOwnRight({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
|
|
console.log(key);
|
|
});
|
|
// => logs 'length', '1', and '0' assuming `_.forOwn` logs '0', '1', and 'length'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_functionsobject"></a>`_.functions(object)`
|
|
<a href="#_functionsobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2508 "View in source") [Ⓣ][1]
|
|
|
|
Creates a sorted array of property names of all enumerable properties,
|
|
own and inherited, of `object` that have function values.
|
|
|
|
#### Aliases
|
|
*_.methods*
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to inspect.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns an array of property names that have function values.
|
|
|
|
#### Example
|
|
```js
|
|
_.functions(_);
|
|
// => ['all', 'any', 'bind', 'bindAll', 'clone', 'compact', 'compose', ...]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_hasobject-key"></a>`_.has(object, key)`
|
|
<a href="#_hasobject-key">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2533 "View in source") [Ⓣ][1]
|
|
|
|
Checks if the specified property name exists as a direct property of `object`,
|
|
instead of an inherited property.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to inspect.
|
|
2. `key` *(string)*: The name of the property to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if key is a direct property, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b');
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_invertobject"></a>`_.invert(object)`
|
|
<a href="#_invertobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2550 "View in source") [Ⓣ][1]
|
|
|
|
Creates an object composed of the inverted keys and values of the given object.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to invert.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns the created inverted object.
|
|
|
|
#### Example
|
|
```js
|
|
_.invert({ 'first': 'fred', 'second': 'barney' });
|
|
// => { 'fred': 'first', 'barney': 'second' }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isargumentsvalue"></a>`_.isArguments(value)`
|
|
<a href="#_isargumentsvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L1910 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is an `arguments` object.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is an `arguments` object, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
(function() { return _.isArguments(arguments); })(1, 2, 3);
|
|
// => true
|
|
|
|
_.isArguments([1, 2, 3]);
|
|
// => false
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isarrayvalue"></a>`_.isArray(value)`
|
|
<a href="#_isarrayvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L1939 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is an array.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is an array, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
(function() { return _.isArray(arguments); })();
|
|
// => false
|
|
|
|
_.isArray([1, 2, 3]);
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isbooleanvalue"></a>`_.isBoolean(value)`
|
|
<a href="#_isbooleanvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2576 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is a boolean value.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is a boolean value, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isBoolean(null);
|
|
// => false
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isdatevalue"></a>`_.isDate(value)`
|
|
<a href="#_isdatevalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2594 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is a date.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is a date, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isDate(new Date);
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_iselementvalue"></a>`_.isElement(value)`
|
|
<a href="#_iselementvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2611 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is a DOM element.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is a DOM element, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isElement(document.body);
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isemptyvalue"></a>`_.isEmpty(value)`
|
|
<a href="#_isemptyvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2636 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is empty. Arrays, strings, or `arguments` objects with a
|
|
length of `0` and objects with no own enumerable properties are considered
|
|
"empty".
|
|
|
|
#### Arguments
|
|
1. `value` *(Array|Object|string)*: The value to inspect.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is empty, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isEmpty([1, 2, 3]);
|
|
// => false
|
|
|
|
_.isEmpty({});
|
|
// => true
|
|
|
|
_.isEmpty('');
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isequala-b-callback-thisarg"></a>`_.isEqual(a, b, [callback], [thisArg])`
|
|
<a href="#_isequala-b-callback-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2693 "View in source") [Ⓣ][1]
|
|
|
|
Performs a deep comparison between two values to determine if they are
|
|
equivalent to each other. If a callback is provided it will be executed
|
|
to compare values. If the callback returns `undefined` comparisons will
|
|
be handled by the method instead. The callback is bound to `thisArg` and
|
|
invoked with two arguments; (a, b).
|
|
|
|
#### Arguments
|
|
1. `a` *(*)*: The value to compare.
|
|
2. `b` *(*)*: The other value to compare.
|
|
3. `[callback]` *(Function)*: The function to customize comparing values.
|
|
4. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the values are equivalent, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
var object = { 'name': 'fred' };
|
|
var copy = { 'name': 'fred' };
|
|
|
|
object == copy;
|
|
// => false
|
|
|
|
_.isEqual(object, copy);
|
|
// => true
|
|
|
|
var words = ['hello', 'goodbye'];
|
|
var otherWords = ['hi', 'goodbye'];
|
|
|
|
_.isEqual(words, otherWords, function(a, b) {
|
|
var reGreet = /^(?:hello|hi)$/i,
|
|
aGreet = _.isString(a) && reGreet.test(a),
|
|
bGreet = _.isString(b) && reGreet.test(b);
|
|
|
|
return (aGreet || bGreet) ? (aGreet == bGreet) : undefined;
|
|
});
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isfinitevalue"></a>`_.isFinite(value)`
|
|
<a href="#_isfinitevalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2725 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is, or can be coerced to, a finite number.
|
|
<br>
|
|
<br>
|
|
Note: This is not the same as native `isFinite` which will return true for
|
|
booleans and empty strings. See http://es5.github.io/#x15.1.2.5.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is finite, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isFinite(-101);
|
|
// => true
|
|
|
|
_.isFinite('10');
|
|
// => true
|
|
|
|
_.isFinite(true);
|
|
// => false
|
|
|
|
_.isFinite('');
|
|
// => false
|
|
|
|
_.isFinite(Infinity);
|
|
// => false
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isfunctionvalue"></a>`_.isFunction(value)`
|
|
<a href="#_isfunctionvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2742 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is a function.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is a function, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isFunction(_);
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isnanvalue"></a>`_.isNaN(value)`
|
|
<a href="#_isnanvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2805 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is `NaN`.
|
|
<br>
|
|
<br>
|
|
Note: This is not the same as native `isNaN` which will return `true` for
|
|
`undefined` and other non-numeric values. See http://es5.github.io/#x15.1.2.4.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is `NaN`, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isNaN(NaN);
|
|
// => true
|
|
|
|
_.isNaN(new Number(NaN));
|
|
// => true
|
|
|
|
isNaN(undefined);
|
|
// => true
|
|
|
|
_.isNaN(undefined);
|
|
// => false
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isnullvalue"></a>`_.isNull(value)`
|
|
<a href="#_isnullvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2827 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is `null`.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is `null`, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isNull(null);
|
|
// => true
|
|
|
|
_.isNull(undefined);
|
|
// => false
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isnumbervalue"></a>`_.isNumber(value)`
|
|
<a href="#_isnumbervalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2846 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is a number.
|
|
<br>
|
|
<br>
|
|
Note: `NaN` is considered a number. See http://es5.github.io/#x8.5.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is a number, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isNumber(8.4 * 5);
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isobjectvalue"></a>`_.isObject(value)`
|
|
<a href="#_isobjectvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2772 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is the language type of Object.
|
|
(e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is an object, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isObject({});
|
|
// => true
|
|
|
|
_.isObject([1, 2, 3]);
|
|
// => true
|
|
|
|
_.isObject(1);
|
|
// => false
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isplainobjectvalue"></a>`_.isPlainObject(value)`
|
|
<a href="#_isplainobjectvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2875 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is an object created by the `Object` constructor.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if `value` is a plain object, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
function Shape() {
|
|
this.x = 0;
|
|
this.y = 0;
|
|
}
|
|
|
|
_.isPlainObject(new Shape);
|
|
// => false
|
|
|
|
_.isPlainObject([1, 2, 3]);
|
|
// => false
|
|
|
|
_.isPlainObject({ 'x': 0, 'y': 0 });
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isregexpvalue"></a>`_.isRegExp(value)`
|
|
<a href="#_isregexpvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2900 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is a regular expression.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is a regular expression, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isRegExp(/fred/);
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isstringvalue"></a>`_.isString(value)`
|
|
<a href="#_isstringvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2917 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is a string.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is a string, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isString('fred');
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_isundefinedvalue"></a>`_.isUndefined(value)`
|
|
<a href="#_isundefinedvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2935 "View in source") [Ⓣ][1]
|
|
|
|
Checks if `value` is `undefined`.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to check.
|
|
|
|
#### Returns
|
|
*(boolean)*: Returns `true` if the `value` is `undefined`, else `false`.
|
|
|
|
#### Example
|
|
```js
|
|
_.isUndefined(void 0);
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_keysobject"></a>`_.keys(object)`
|
|
<a href="#_keysobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L1973 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array composed of the own enumerable property names of an object.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to inspect.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns an array of property names.
|
|
|
|
#### Example
|
|
```js
|
|
_.keys({ 'one': 1, 'two': 2, 'three': 3 });
|
|
// => ['one', 'two', 'three'] (property order is not guaranteed across environments)
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_mapvaluesobject-callbackidentity-thisarg"></a>`_.mapValues(object, [callback=identity], [thisArg])`
|
|
<a href="#_mapvaluesobject-callbackidentity-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L2975 "View in source") [Ⓣ][1]
|
|
|
|
Creates an object with the same keys as `object` and values generated by
|
|
running each own enumerable property of `object` through the callback.
|
|
The callback is bound to `thisArg` and invoked with three arguments;
|
|
(value, key, object).
|
|
<br>
|
|
<br>
|
|
If a property name is provided for `callback` the created "_.pluck" style
|
|
callback will return the property value of the given element.
|
|
<br>
|
|
<br>
|
|
If an object is provided for `callback` the created "_.where" style callback
|
|
will return `true` for elements that have the properties of the given object,
|
|
else `false`.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to iterate over.
|
|
2. `[callback=identity]` *(Function|Object|string)*: The function called per iteration. If a property name or object is provided it will be used to create a "_.pluck" or "_.where" style callback, respectively.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns a new object with values of the results of each `callback` execution.
|
|
|
|
#### Example
|
|
```js
|
|
_.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });
|
|
// => { 'a': 3, 'b': 6, 'c': 9 }
|
|
|
|
var characters = {
|
|
'fred': { 'name': 'fred', 'age': 40 },
|
|
'pebbles': { 'name': 'pebbles', 'age': 1 }
|
|
};
|
|
|
|
// using "_.pluck" callback shorthand
|
|
_.mapValues(characters, 'age');
|
|
// => { 'fred': 40, 'pebbles': 1 }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_mergeobject-source-callback-thisarg"></a>`_.merge(object, [source], [callback], [thisArg])`
|
|
<a href="#_mergeobject-source-callback-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3036 "View in source") [Ⓣ][1]
|
|
|
|
Recursively merges own enumerable properties of the source object(s), that
|
|
don't resolve to `undefined` into the destination object. Subsequent sources
|
|
will overwrite property assignments of previous sources. If a callback is
|
|
provided it will be executed to produce the merged values of the destination
|
|
and source properties. If the callback returns `undefined` merging will
|
|
be handled by the method instead. The callback is bound to `thisArg` and
|
|
invoked with two arguments; (objectValue, sourceValue).
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The destination object.
|
|
2. `[source]` *(...Object)*: The source objects.
|
|
3. `[callback]` *(Function)*: The function to customize merging properties.
|
|
4. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns the destination object.
|
|
|
|
#### Example
|
|
```js
|
|
var names = {
|
|
'characters': [
|
|
{ 'name': 'barney' },
|
|
{ 'name': 'fred' }
|
|
]
|
|
};
|
|
|
|
var ages = {
|
|
'characters': [
|
|
{ 'age': 36 },
|
|
{ 'age': 40 }
|
|
]
|
|
};
|
|
|
|
_.merge(names, ages);
|
|
// => { 'characters': [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }] }
|
|
|
|
var food = {
|
|
'fruits': ['apple'],
|
|
'vegetables': ['beet']
|
|
};
|
|
|
|
var otherFood = {
|
|
'fruits': ['banana'],
|
|
'vegetables': ['carrot']
|
|
};
|
|
|
|
_.merge(food, otherFood, function(a, b) {
|
|
return _.isArray(a) ? a.concat(b) : undefined;
|
|
});
|
|
// => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot] }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_omitobject-callback-thisarg"></a>`_.omit(object, [callback], [thisArg])`
|
|
<a href="#_omitobject-callback-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3092 "View in source") [Ⓣ][1]
|
|
|
|
Creates a shallow clone of `object` excluding the specified properties.
|
|
Property names may be specified as individual arguments or as arrays of
|
|
property names. If a callback is provided it will be executed for each
|
|
property of `object` omitting the properties the callback returns truey
|
|
for. The callback is bound to `thisArg` and invoked with three arguments;
|
|
(value, key, object).
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The source object.
|
|
2. `[callback]` *(Function|...string|string[])*: The properties to omit or the function called per iteration.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns an object without the omitted properties.
|
|
|
|
#### Example
|
|
```js
|
|
_.omit({ 'name': 'fred', 'age': 40 }, 'age');
|
|
// => { 'name': 'fred' }
|
|
|
|
_.omit({ 'name': 'fred', 'age': 40 }, function(value) {
|
|
return typeof value == 'number';
|
|
});
|
|
// => { 'name': 'fred' }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_pairsobject"></a>`_.pairs(object)`
|
|
<a href="#_pairsobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3133 "View in source") [Ⓣ][1]
|
|
|
|
Creates a two dimensional array of an object's key-value pairs,
|
|
i.e. `[[key1, value1], [key2, value2]]`.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to inspect.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns new array of key-value pairs.
|
|
|
|
#### Example
|
|
```js
|
|
_.pairs({ 'barney': 36, 'fred': 40 });
|
|
// => [['barney', 36], ['fred', 40]] (property order is not guaranteed across environments)
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_pickobject-callback-thisarg"></a>`_.pick(object, [callback], [thisArg])`
|
|
<a href="#_pickobject-callback-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3173 "View in source") [Ⓣ][1]
|
|
|
|
Creates a shallow clone of `object` composed of the specified properties.
|
|
Property names may be specified as individual arguments or as arrays of
|
|
property names. If a callback is provided it will be executed for each
|
|
property of `object` picking the properties the callback returns truey
|
|
for. The callback is bound to `thisArg` and invoked with three arguments;
|
|
(value, key, object).
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The source object.
|
|
2. `[callback]` *(Function|...string|string[])*: The function called per iteration or property names to pick, specified as individual property names or arrays of property names.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Object)*: Returns an object composed of the picked properties.
|
|
|
|
#### Example
|
|
```js
|
|
_.pick({ 'name': 'fred', '_userid': 'fred1' }, 'name');
|
|
// => { 'name': 'fred' }
|
|
|
|
_.pick({ 'name': 'fred', '_userid': 'fred1' }, function(value, key) {
|
|
return key.charAt(0) != '_';
|
|
});
|
|
// => { 'name': 'fred' }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_transformobject-callbackidentity-accumulator-thisarg"></a>`_.transform(object, [callback=identity], [accumulator], [thisArg])`
|
|
<a href="#_transformobject-callbackidentity-accumulator-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3228 "View in source") [Ⓣ][1]
|
|
|
|
An alternative to `_.reduce` this method transforms `object` to a new
|
|
`accumulator` object which is the result of running each of its own
|
|
enumerable properties through a callback, with each callback execution
|
|
potentially mutating the `accumulator` object. The callback is bound to
|
|
`thisArg` and invoked with four arguments; (accumulator, value, key, object).
|
|
Callbacks may exit iteration early by explicitly returning `false`.
|
|
|
|
#### Arguments
|
|
1. `object` *(Array|Object)*: The object to iterate over.
|
|
2. `[callback=identity]` *(Function)*: The function called per iteration.
|
|
3. `[accumulator]` *(*)*: The custom accumulator value.
|
|
4. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the accumulated value.
|
|
|
|
#### Example
|
|
```js
|
|
var squares = _.transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function(result, num) {
|
|
num *= num;
|
|
if (num % 2) {
|
|
return result.push(num) < 3;
|
|
}
|
|
});
|
|
// => [1, 9, 25]
|
|
|
|
var mapped = _.transform({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {
|
|
result[key] = num * 3;
|
|
});
|
|
// => { 'a': 3, 'b': 6, 'c': 9 }
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_valuesobject"></a>`_.values(object)`
|
|
<a href="#_valuesobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L3262 "View in source") [Ⓣ][1]
|
|
|
|
Creates an array composed of the own enumerable property values of `object`.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to inspect.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns an array of property values.
|
|
|
|
#### Example
|
|
```js
|
|
_.values({ 'one': 1, 'two': 2, 'three': 3 });
|
|
// => [1, 2, 3] (property order is not guaranteed across environments)
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `“Utilities” Methods`
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_constantvalue"></a>`_.constant(value)`
|
|
<a href="#_constantvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6126 "View in source") [Ⓣ][1]
|
|
|
|
Creates a function that returns `value`.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: The value to return from the new function.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new function.
|
|
|
|
#### Example
|
|
```js
|
|
var object = { 'name': 'fred' };
|
|
var getter = _.constant(object);
|
|
getter() === object;
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_createcallbackfuncidentity-thisarg-argcount"></a>`_.createCallback([func=identity], [thisArg], [argCount])`
|
|
<a href="#_createcallbackfuncidentity-thisarg-argcount">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6163 "View in source") [Ⓣ][1]
|
|
|
|
Produces a callback bound to an optional `thisArg`. If `func` is a property
|
|
name the created callback will return the property value for a given element.
|
|
If `func` is an object the created callback will return `true` for elements
|
|
that contain the equivalent object properties, otherwise it will return `false`.
|
|
|
|
#### Arguments
|
|
1. `[func=identity]` *(*)*: The value to convert to a callback.
|
|
2. `[thisArg]` *(*)*: The `this` binding of the created callback.
|
|
3. `[argCount]` *(number)*: The number of arguments the callback accepts.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns a callback function.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'barney', 'age': 36 },
|
|
{ 'name': 'fred', 'age': 40 }
|
|
];
|
|
|
|
// wrap to create custom callback shorthands
|
|
_.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
|
|
var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
|
|
return !match ? func(callback, thisArg) : function(object) {
|
|
return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
|
|
};
|
|
});
|
|
|
|
_.filter(characters, 'age__gt38');
|
|
// => [{ 'name': 'fred', 'age': 40 }]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_escapestring"></a>`_.escape(string)`
|
|
<a href="#_escapestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6212 "View in source") [Ⓣ][1]
|
|
|
|
Converts the characters `&`, `<`, `>`, `"`, and `'` in `string` to their
|
|
corresponding HTML entities.
|
|
|
|
#### Arguments
|
|
1. `string` *(string)*: The string to escape.
|
|
|
|
#### Returns
|
|
*(string)*: Returns the escaped string.
|
|
|
|
#### Example
|
|
```js
|
|
_.escape('Fred, Wilma, & Pebbles');
|
|
// => 'Fred, Wilma, & Pebbles'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_identityvalue"></a>`_.identity(value)`
|
|
<a href="#_identityvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6230 "View in source") [Ⓣ][1]
|
|
|
|
This method returns the first argument provided to it.
|
|
|
|
#### Arguments
|
|
1. `value` *(*)*: Any value.
|
|
|
|
#### Returns
|
|
*(*)*: Returns `value`.
|
|
|
|
#### Example
|
|
```js
|
|
var object = { 'name': 'fred' };
|
|
_.identity(object) === object;
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_mixinobjectlodash-source-options"></a>`_.mixin([object=lodash], source, [options])`
|
|
<a href="#_mixinobjectlodash-source-options">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6262 "View in source") [Ⓣ][1]
|
|
|
|
Adds function properties of a source object to the destination object.
|
|
If `object` is a function methods will be added to its prototype as well.
|
|
|
|
#### Arguments
|
|
1. `[object=lodash]` *(Function|Object)*: object The destination object.
|
|
2. `source` *(Object)*: The object of functions to add.
|
|
3. `[options]` *(Object)*: The options object.
|
|
4. `[options.chain=true]` *(boolean)*: Specify whether the functions added are chainable.
|
|
|
|
#### Example
|
|
```js
|
|
function capitalize(string) {
|
|
return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
|
|
}
|
|
|
|
_.mixin({ 'capitalize': capitalize });
|
|
_.capitalize('fred');
|
|
// => 'Fred'
|
|
|
|
_('fred').capitalize().value();
|
|
// => 'Fred'
|
|
|
|
_.mixin({ 'capitalize': capitalize }, { 'chain': false });
|
|
_('fred').capitalize();
|
|
// => 'Fred'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_noconflict"></a>`_.noConflict()`
|
|
<a href="#_noconflict">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6318 "View in source") [Ⓣ][1]
|
|
|
|
Reverts the '_' variable to its previous value and returns a reference to
|
|
the `lodash` function.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the `lodash` function.
|
|
|
|
#### Example
|
|
```js
|
|
var lodash = _.noConflict();
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_noop"></a>`_.noop()`
|
|
<a href="#_noop">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6335 "View in source") [Ⓣ][1]
|
|
|
|
A no-operation function.
|
|
|
|
#### Example
|
|
```js
|
|
var object = { 'name': 'fred' };
|
|
_.noop(object) === undefined;
|
|
// => true
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_now"></a>`_.now`
|
|
<a href="#_now">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6352 "View in source") [Ⓣ][1]
|
|
|
|
Gets the number of milliseconds that have elapsed since the Unix epoch
|
|
(1 January 1970 00:00:00 UTC).
|
|
|
|
#### Example
|
|
```js
|
|
var stamp = _.now();
|
|
_.defer(function() { console.log(_.now() - stamp); });
|
|
// => logs the number of milliseconds it took for the deferred function to be called
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_parseintvalue-radix"></a>`_.parseInt(value, [radix])`
|
|
<a href="#_parseintvalue-radix">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6375 "View in source") [Ⓣ][1]
|
|
|
|
Converts the given value into an integer of the specified radix.
|
|
If `radix` is `undefined` or `0` a `radix` of `10` is used unless the
|
|
`value` is a hexadecimal, in which case a `radix` of `16` is used.
|
|
<br>
|
|
<br>
|
|
Note: This method avoids differences in native ES3 and ES5 `parseInt`
|
|
implementations. See http://es5.github.io/#E.
|
|
|
|
#### Arguments
|
|
1. `value` *(string)*: The value to parse.
|
|
2. `[radix]` *(number)*: The radix used to interpret the value to parse.
|
|
|
|
#### Returns
|
|
*(number)*: Returns the new integer value.
|
|
|
|
#### Example
|
|
```js
|
|
_.parseInt('08');
|
|
// => 8
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_propertykey"></a>`_.property(key)`
|
|
<a href="#_propertykey">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6404 "View in source") [Ⓣ][1]
|
|
|
|
Creates a "_.pluck" style function, which returns the `key` value of a
|
|
given object.
|
|
|
|
#### Arguments
|
|
1. `key` *(string)*: The name of the property to retrieve.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the new function.
|
|
|
|
#### Example
|
|
```js
|
|
var characters = [
|
|
{ 'name': 'fred', 'age': 40 },
|
|
{ 'name': 'barney', 'age': 36 }
|
|
];
|
|
|
|
var getName = _.property('name');
|
|
|
|
_.map(characters, getName);
|
|
// => ['barney', 'fred']
|
|
|
|
_.sortBy(characters, getName);
|
|
// => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_randommin0-max1-floatingfalse"></a>`_.random([min=0], [max=1], [floating=false])`
|
|
<a href="#_randommin0-max1-floatingfalse">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6437 "View in source") [Ⓣ][1]
|
|
|
|
Produces a random number between `min` and `max` (inclusive). If only one
|
|
argument is provided a number between `0` and the given number will be
|
|
returned. If `floating` is truey or either `min` or `max` are floats a
|
|
floating-point number will be returned instead of an integer.
|
|
|
|
#### Arguments
|
|
1. `[min=0]` *(number)*: The minimum possible value.
|
|
2. `[max=1]` *(number)*: The maximum possible value.
|
|
3. `[floating=false]` *(boolean)*: Specify returning a floating-point number.
|
|
|
|
#### Returns
|
|
*(number)*: Returns a random number.
|
|
|
|
#### Example
|
|
```js
|
|
_.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
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_resultobject-key"></a>`_.result(object, key)`
|
|
<a href="#_resultobject-key">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6495 "View in source") [Ⓣ][1]
|
|
|
|
Resolves the value of property `key` on `object`. If `key` is a function
|
|
it will be invoked with the `this` binding of `object` and its result returned,
|
|
else the property value is returned. If `object` is falsey then `undefined`
|
|
is returned.
|
|
|
|
#### Arguments
|
|
1. `object` *(Object)*: The object to inspect.
|
|
2. `key` *(string)*: The name of the property to resolve.
|
|
|
|
#### Returns
|
|
*(*)*: Returns the resolved value.
|
|
|
|
#### Example
|
|
```js
|
|
var object = {
|
|
'cheese': 'crumpets',
|
|
'stuff': function() {
|
|
return 'nonsense';
|
|
}
|
|
};
|
|
|
|
_.result(object, 'cheese');
|
|
// => 'crumpets'
|
|
|
|
_.result(object, 'stuff');
|
|
// => 'nonsense'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_runincontextcontextroot"></a>`_.runInContext([context=root])`
|
|
<a href="#_runincontextcontextroot">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L469 "View in source") [Ⓣ][1]
|
|
|
|
Create a new `lodash` function using the given context object.
|
|
|
|
#### Arguments
|
|
1. `[context=root]` *(Object)*: The context object.
|
|
|
|
#### Returns
|
|
*(Function)*: Returns the `lodash` function.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_templatetext-data-options-sourceurl-variable"></a>`_.template(text, data, [options], [sourceURL], [variable])`
|
|
<a href="#_templatetext-data-options-sourceurl-variable">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6588 "View in source") [Ⓣ][1]
|
|
|
|
A micro-templating method that handles arbitrary delimiters, preserves
|
|
whitespace, and correctly escapes quotes within interpolated code.
|
|
<br>
|
|
<br>
|
|
Note: In the development build, `_.template` utilizes sourceURLs for easier
|
|
debugging. See http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl
|
|
<br>
|
|
<br>
|
|
For more information on precompiling templates see:<br>
|
|
https://lodash.com/custom-builds
|
|
<br>
|
|
<br>
|
|
For more information on Chrome extension sandboxes see:<br>
|
|
http://developer.chrome.com/stable/extensions/sandboxingEval.html
|
|
|
|
#### Arguments
|
|
1. `text` *(string)*: The template text.
|
|
2. `data` *(Object)*: The data object used to populate the text.
|
|
3. `[options]` *(Object)*: The options object.
|
|
4. `[options.escape]` *(RegExp)*: The "escape" delimiter.
|
|
5. `[options.evaluate]` *(RegExp)*: The "evaluate" delimiter.
|
|
6. `[options.imports]` *(Object)*: An object to import into the template as local variables.
|
|
7. `[options.interpolate]` *(RegExp)*: The "interpolate" delimiter.
|
|
8. `[sourceURL]` *(string)*: The sourceURL of the template's compiled source.
|
|
9. `[variable]` *(string)*: The data object variable name.
|
|
|
|
#### Returns
|
|
*(Function|string)*: Returns a compiled function when no `data` object
|
|
is given, else it returns the interpolated text.
|
|
|
|
#### Example
|
|
```js
|
|
// using the "interpolate" delimiter to create a compiled template
|
|
var compiled = _.template('hello <%= name %>');
|
|
compiled({ 'name': 'fred' });
|
|
// => 'hello fred'
|
|
|
|
// using the "escape" delimiter to escape HTML in data property values
|
|
_.template('<b><%- value %></b>', { 'value': '<script>' });
|
|
// => '<b><script></b>'
|
|
|
|
// using the "evaluate" delimiter to generate HTML
|
|
var list = '<% _.forEach(people, function(name) { %><li><%- name %></li><% }); %>';
|
|
_.template(list, { 'people': ['fred', 'barney'] });
|
|
// => '<li>fred</li><li>barney</li>'
|
|
|
|
// using the ES6 delimiter as an alternative to the default "interpolate" delimiter
|
|
_.template('hello ${ name }', { 'name': 'pebbles' });
|
|
// => 'hello pebbles'
|
|
|
|
// using the internal `print` function in "evaluate" delimiters
|
|
_.template('<% print("hello " + name); %>!', { 'name': 'barney' });
|
|
// => 'hello barney!'
|
|
|
|
// using a custom template delimiters
|
|
_.templateSettings = {
|
|
'interpolate': /{{([\s\S]+?)}}/g
|
|
};
|
|
|
|
_.template('hello {{ name }}!', { 'name': 'mustache' });
|
|
// => 'hello mustache!'
|
|
|
|
// using the `imports` option to import jQuery
|
|
var list = '<% jq.each(people, function(name) { %><li><%- name %></li><% }); %>';
|
|
_.template(list, { 'people': ['fred', 'barney'] }, { 'imports': { 'jq': jQuery } });
|
|
// => '<li>fred</li><li>barney</li>'
|
|
|
|
// using the `sourceURL` option to specify a custom sourceURL for the template
|
|
var compiled = _.template('hello <%= name %>', null, { 'sourceURL': '/basic/greeting.jst' });
|
|
compiled(data);
|
|
// => find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector
|
|
|
|
// using the `variable` option to ensure a with-statement isn't used in the compiled template
|
|
var compiled = _.template('hi <%= data.name %>!', null, { 'variable': 'data' });
|
|
compiled.source;
|
|
// => function(data) {
|
|
var __t, __p = '', __e = _.escape;
|
|
__p += 'hi ' + ((__t = ( data.name )) == null ? '' : __t) + '!';
|
|
return __p;
|
|
}
|
|
|
|
// using the `source` property to inline compiled templates for meaningful
|
|
// line numbers in error messages and a stack trace
|
|
fs.writeFileSync(path.join(cwd, 'jst.js'), '\
|
|
var JST = {\
|
|
"main": ' + _.template(mainText).source + '\
|
|
};\
|
|
');
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_timesn-callback-thisarg"></a>`_.times(n, callback, [thisArg])`
|
|
<a href="#_timesn-callback-thisarg">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6711 "View in source") [Ⓣ][1]
|
|
|
|
Executes the callback `n` times, returning an array of the results
|
|
of each callback execution. The callback is bound to `thisArg` and invoked
|
|
with one argument; (index).
|
|
|
|
#### Arguments
|
|
1. `n` *(number)*: The number of times to execute the callback.
|
|
2. `callback` *(Function)*: The function called per iteration.
|
|
3. `[thisArg]` *(*)*: The `this` binding of `callback`.
|
|
|
|
#### Returns
|
|
*(Array)*: Returns an array of the results of each `callback` execution.
|
|
|
|
#### Example
|
|
```js
|
|
var diceRolls = _.times(3, _.partial(_.random, 1, 6));
|
|
// => [3, 6, 4]
|
|
|
|
_.times(3, function(n) { mage.castSpell(n); });
|
|
// => calls `mage.castSpell(n)` three times, passing `n` of `0`, `1`, and `2` respectively
|
|
|
|
_.times(3, function(n) { this.cast(n); }, mage);
|
|
// => also calls `mage.castSpell(n)` three times
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_unescapestring"></a>`_.unescape(string)`
|
|
<a href="#_unescapestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6738 "View in source") [Ⓣ][1]
|
|
|
|
The inverse of `_.escape` this method converts the HTML entities
|
|
`&`, `<`, `>`, `"`, and `'` in `string` to their
|
|
corresponding characters.
|
|
|
|
#### Arguments
|
|
1. `string` *(string)*: The string to unescape.
|
|
|
|
#### Returns
|
|
*(string)*: Returns the unescaped string.
|
|
|
|
#### Example
|
|
```js
|
|
_.unescape('Fred, Barney & Pebbles');
|
|
// => 'Fred, Barney & Pebbles'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_uniqueidprefix"></a>`_.uniqueId([prefix])`
|
|
<a href="#_uniqueidprefix">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L6758 "View in source") [Ⓣ][1]
|
|
|
|
Generates a unique ID. If `prefix` is provided the ID will be appended to it.
|
|
|
|
#### Arguments
|
|
1. `[prefix]` *(string)*: The value to prefix the ID with.
|
|
|
|
#### Returns
|
|
*(string)*: Returns the unique ID.
|
|
|
|
#### Example
|
|
```js
|
|
_.uniqueId('contact_');
|
|
// => 'contact_104'
|
|
|
|
_.uniqueId();
|
|
// => '105'
|
|
```
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `Methods`
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_templatesettingsimports_"></a>`_.templateSettings.imports._`
|
|
<a href="#_templatesettingsimports_">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L867 "View in source") [Ⓣ][1]
|
|
|
|
A reference to the `lodash` function.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
## `Properties`
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_version"></a>`_.VERSION`
|
|
<a href="#_version">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L7079 "View in source") [Ⓣ][1]
|
|
|
|
(string): The semantic version number.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_support"></a>`_.support`
|
|
<a href="#_support">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L676 "View in source") [Ⓣ][1]
|
|
|
|
(Object): An object used to flag environments features.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportargsclass"></a>`_.support.argsClass`
|
|
<a href="#_supportargsclass">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L693 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect if an `arguments` object's [[Class]] is resolvable (all but Firefox < 4, IE < 9).
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportargsobject"></a>`_.support.argsObject`
|
|
<a href="#_supportargsobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L701 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect if `arguments` objects are `Object` objects (all but Narwhal and Opera < 10.5).
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportenumerrorprops"></a>`_.support.enumErrorProps`
|
|
<a href="#_supportenumerrorprops">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L710 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect if `name` or `message` properties of `Error.prototype` are
|
|
enumerable by default. (IE < 9, Safari < 5.1)
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportenumprototypes"></a>`_.support.enumPrototypes`
|
|
<a href="#_supportenumprototypes">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L723 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect if `prototype` properties are enumerable by default.
|
|
<br>
|
|
<br>
|
|
Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1
|
|
(if the prototype or a property on the prototype has been set)
|
|
incorrectly sets a function's `prototype` property [[Enumerable]]
|
|
value to `true`.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportfuncdecomp"></a>`_.support.funcDecomp`
|
|
<a href="#_supportfuncdecomp">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L732 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect if functions can be decompiled by `Function#toString`
|
|
(all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportfuncnames"></a>`_.support.funcNames`
|
|
<a href="#_supportfuncnames">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L740 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect if `Function#name` is supported (all but IE).
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportnonenumargs"></a>`_.support.nonEnumArgs`
|
|
<a href="#_supportnonenumargs">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L749 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect if `arguments` object indexes are non-enumerable
|
|
(Firefox < 4, IE < 9, PhantomJS, Safari < 5.1).
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportnonenumshadows"></a>`_.support.nonEnumShadows`
|
|
<a href="#_supportnonenumshadows">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L760 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect if properties shadowing those on `Object.prototype` are non-enumerable.
|
|
<br>
|
|
<br>
|
|
In IE < 9 an objects own properties, shadowing non-enumerable ones, are
|
|
made non-enumerable as well (a.k.a the JScript [[DontEnum]] bug).
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportownlast"></a>`_.support.ownLast`
|
|
<a href="#_supportownlast">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L768 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect if own properties are iterated after inherited properties (all but IE < 9).
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportspliceobjects"></a>`_.support.spliceObjects`
|
|
<a href="#_supportspliceobjects">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L782 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect if `Array#shift` and `Array#splice` augment array-like objects correctly.
|
|
<br>
|
|
<br>
|
|
Firefox < 10, IE compatibility mode, and IE < 9 have buggy Array `shift()`
|
|
and `splice()` functions that fail to remove the last element, `value[0]`,
|
|
of array-like objects even though the `length` property is set to `0`.
|
|
The `shift()` method is buggy in IE 8 compatibility mode, while `splice()`
|
|
is buggy regardless of mode in IE < 9 and buggy in compatibility mode in IE 9.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_supportunindexedchars"></a>`_.support.unindexedChars`
|
|
<a href="#_supportunindexedchars">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L793 "View in source") [Ⓣ][1]
|
|
|
|
(boolean): Detect lack of support for accessing string characters by index.
|
|
<br>
|
|
<br>
|
|
IE < 8 can't access characters by index and IE 8 can only access
|
|
characters by index on string literals.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_templatesettings"></a>`_.templateSettings`
|
|
<a href="#_templatesettings">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L819 "View in source") [Ⓣ][1]
|
|
|
|
(Object): By default, the template delimiters used by Lo-Dash are similar to those in
|
|
embedded Ruby (ERB). Change the following template settings to use alternative
|
|
delimiters.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_templatesettingsescape"></a>`_.templateSettings.escape`
|
|
<a href="#_templatesettingsescape">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L827 "View in source") [Ⓣ][1]
|
|
|
|
(RegExp): Used to detect `data` property values to be HTML-escaped.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_templatesettingsevaluate"></a>`_.templateSettings.evaluate`
|
|
<a href="#_templatesettingsevaluate">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L835 "View in source") [Ⓣ][1]
|
|
|
|
(RegExp): Used to detect code to be evaluated.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_templatesettingsimports"></a>`_.templateSettings.imports`
|
|
<a href="#_templatesettingsimports">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L859 "View in source") [Ⓣ][1]
|
|
|
|
(Object): Used to import variables into the compiled template.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_templatesettingsinterpolate"></a>`_.templateSettings.interpolate`
|
|
<a href="#_templatesettingsinterpolate">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L843 "View in source") [Ⓣ][1]
|
|
|
|
(RegExp): Used to detect `data` property values to inject.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- div -->
|
|
|
|
### <a id="_templatesettingsvariable"></a>`_.templateSettings.variable`
|
|
<a href="#_templatesettingsvariable">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/2.4.2/lodash.js#L851 "View in source") [Ⓣ][1]
|
|
|
|
(string): Used to reference the data object in the template text.
|
|
|
|
* * *
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- /div -->
|
|
|
|
<!-- /div -->
|
|
|
|
[1]: #arrays "Jump back to the TOC."
|