diff options
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/lodash/doc')
-rw-r--r-- | ecomp-portal-FE/client/bower_components/lodash/doc/README.md | 10897 |
1 files changed, 0 insertions, 10897 deletions
diff --git a/ecomp-portal-FE/client/bower_components/lodash/doc/README.md b/ecomp-portal-FE/client/bower_components/lodash/doc/README.md deleted file mode 100644 index 7f201043..00000000 --- a/ecomp-portal-FE/client/bower_components/lodash/doc/README.md +++ /dev/null @@ -1,10897 +0,0 @@ -# <a href="https://lodash.com/">lodash</a> <span>v4.13.1</span> - -<!-- div class="toc-container" --> - -<!-- div --> - -## `Array` -* <a href="#_chunkarray-size1">`_.chunk`</a> -* <a href="#_compactarray">`_.compact`</a> -* <a href="#_concatarray-values">`_.concat`</a> -* <a href="#_differencearray-values">`_.difference`</a> -* <a href="#_differencebyarray-values-iteratee_identity">`_.differenceBy`</a> -* <a href="#_differencewitharray-values-comparator">`_.differenceWith`</a> -* <a href="#_droparray-n1">`_.drop`</a> -* <a href="#_droprightarray-n1">`_.dropRight`</a> -* <a href="#_droprightwhilearray-predicate_identity">`_.dropRightWhile`</a> -* <a href="#_dropwhilearray-predicate_identity">`_.dropWhile`</a> -* <a href="#_fillarray-value-start0-endarraylength">`_.fill`</a> -* <a href="#_findindexarray-predicate_identity-fromindex0">`_.findIndex`</a> -* <a href="#_findlastindexarray-predicate_identity-fromindexarraylength-1">`_.findLastIndex`</a> -* <a href="#_headarray" class="alias">`_.first` -> `head`</a> -* <a href="#_flattenarray">`_.flatten`</a> -* <a href="#_flattendeeparray">`_.flattenDeep`</a> -* <a href="#_flattendeptharray-depth1">`_.flattenDepth`</a> -* <a href="#_frompairspairs">`_.fromPairs`</a> -* <a href="#_headarray">`_.head`</a> -* <a href="#_indexofarray-value-fromindex0">`_.indexOf`</a> -* <a href="#_initialarray">`_.initial`</a> -* <a href="#_intersectionarrays">`_.intersection`</a> -* <a href="#_intersectionbyarrays-iteratee_identity">`_.intersectionBy`</a> -* <a href="#_intersectionwitharrays-comparator">`_.intersectionWith`</a> -* <a href="#_joinarray-separator-">`_.join`</a> -* <a href="#_lastarray">`_.last`</a> -* <a href="#_lastindexofarray-value-fromindexarraylength-1">`_.lastIndexOf`</a> -* <a href="#_ntharray-n0">`_.nth`</a> -* <a href="#_pullarray-values">`_.pull`</a> -* <a href="#_pullallarray-values">`_.pullAll`</a> -* <a href="#_pullallbyarray-values-iteratee_identity">`_.pullAllBy`</a> -* <a href="#_pullallwitharray-values-comparator">`_.pullAllWith`</a> -* <a href="#_pullatarray-indexes">`_.pullAt`</a> -* <a href="#_removearray-predicate_identity">`_.remove`</a> -* <a href="#_reversearray">`_.reverse`</a> -* <a href="#_slicearray-start0-endarraylength">`_.slice`</a> -* <a href="#_sortedindexarray-value">`_.sortedIndex`</a> -* <a href="#_sortedindexbyarray-value-iteratee_identity">`_.sortedIndexBy`</a> -* <a href="#_sortedindexofarray-value">`_.sortedIndexOf`</a> -* <a href="#_sortedlastindexarray-value">`_.sortedLastIndex`</a> -* <a href="#_sortedlastindexbyarray-value-iteratee_identity">`_.sortedLastIndexBy`</a> -* <a href="#_sortedlastindexofarray-value">`_.sortedLastIndexOf`</a> -* <a href="#_sorteduniqarray">`_.sortedUniq`</a> -* <a href="#_sorteduniqbyarray-iteratee">`_.sortedUniqBy`</a> -* <a href="#_tailarray">`_.tail`</a> -* <a href="#_takearray-n1">`_.take`</a> -* <a href="#_takerightarray-n1">`_.takeRight`</a> -* <a href="#_takerightwhilearray-predicate_identity">`_.takeRightWhile`</a> -* <a href="#_takewhilearray-predicate_identity">`_.takeWhile`</a> -* <a href="#_unionarrays">`_.union`</a> -* <a href="#_unionbyarrays-iteratee_identity">`_.unionBy`</a> -* <a href="#_unionwitharrays-comparator">`_.unionWith`</a> -* <a href="#_uniqarray">`_.uniq`</a> -* <a href="#_uniqbyarray-iteratee_identity">`_.uniqBy`</a> -* <a href="#_uniqwitharray-comparator">`_.uniqWith`</a> -* <a href="#_unziparray">`_.unzip`</a> -* <a href="#_unzipwitharray-iteratee_identity">`_.unzipWith`</a> -* <a href="#_withoutarray-values">`_.without`</a> -* <a href="#_xorarrays">`_.xor`</a> -* <a href="#_xorbyarrays-iteratee_identity">`_.xorBy`</a> -* <a href="#_xorwitharrays-comparator">`_.xorWith`</a> -* <a href="#_ziparrays">`_.zip`</a> -* <a href="#_zipobjectprops-values">`_.zipObject`</a> -* <a href="#_zipobjectdeepprops-values">`_.zipObjectDeep`</a> -* <a href="#_zipwitharrays-iteratee_identity">`_.zipWith`</a> - -<!-- /div --> - -<!-- div --> - -## `Collection` -* <a href="#_countbycollection-iteratee_identity">`_.countBy`</a> -* <a href="#_foreachcollection-iteratee_identity" class="alias">`_.each` -> `forEach`</a> -* <a href="#_foreachrightcollection-iteratee_identity" class="alias">`_.eachRight` -> `forEachRight`</a> -* <a href="#_everycollection-predicate_identity">`_.every`</a> -* <a href="#_filtercollection-predicate_identity">`_.filter`</a> -* <a href="#_findcollection-predicate_identity-fromindex0">`_.find`</a> -* <a href="#_findlastcollection-predicate_identity-fromindexcollectionlength-1">`_.findLast`</a> -* <a href="#_flatmapcollection-iteratee_identity">`_.flatMap`</a> -* <a href="#_flatmapdeepcollection-iteratee_identity">`_.flatMapDeep`</a> -* <a href="#_flatmapdepthcollection-iteratee_identity-depth1">`_.flatMapDepth`</a> -* <a href="#_foreachcollection-iteratee_identity">`_.forEach`</a> -* <a href="#_foreachrightcollection-iteratee_identity">`_.forEachRight`</a> -* <a href="#_groupbycollection-iteratee_identity">`_.groupBy`</a> -* <a href="#_includescollection-value-fromindex0">`_.includes`</a> -* <a href="#_invokemapcollection-path-args">`_.invokeMap`</a> -* <a href="#_keybycollection-iteratee_identity">`_.keyBy`</a> -* <a href="#_mapcollection-iteratee_identity">`_.map`</a> -* <a href="#_orderbycollection-iteratees_identity-orders">`_.orderBy`</a> -* <a href="#_partitioncollection-predicate_identity">`_.partition`</a> -* <a href="#_reducecollection-iteratee_identity-accumulator">`_.reduce`</a> -* <a href="#_reducerightcollection-iteratee_identity-accumulator">`_.reduceRight`</a> -* <a href="#_rejectcollection-predicate_identity">`_.reject`</a> -* <a href="#_samplecollection">`_.sample`</a> -* <a href="#_samplesizecollection-n1">`_.sampleSize`</a> -* <a href="#_shufflecollection">`_.shuffle`</a> -* <a href="#_sizecollection">`_.size`</a> -* <a href="#_somecollection-predicate_identity">`_.some`</a> -* <a href="#_sortbycollection-iteratees_identity">`_.sortBy`</a> - -<!-- /div --> - -<!-- div --> - -## `Date` -* <a href="#_now">`_.now`</a> - -<!-- /div --> - -<!-- div --> - -## `Function` -* <a href="#_aftern-func">`_.after`</a> -* <a href="#_aryfunc-nfunclength">`_.ary`</a> -* <a href="#_beforen-func">`_.before`</a> -* <a href="#_bindfunc-thisarg-partials">`_.bind`</a> -* <a href="#_bindkeyobject-key-partials">`_.bindKey`</a> -* <a href="#_curryfunc-arityfunclength">`_.curry`</a> -* <a href="#_curryrightfunc-arityfunclength">`_.curryRight`</a> -* <a href="#_debouncefunc-wait0-options-optionsleadingfalse-optionsmaxwait-optionstrailingtrue">`_.debounce`</a> -* <a href="#_deferfunc-args">`_.defer`</a> -* <a href="#_delayfunc-wait-args">`_.delay`</a> -* <a href="#_flipfunc">`_.flip`</a> -* <a href="#_memoizefunc-resolver">`_.memoize`</a> -* <a href="#_negatepredicate">`_.negate`</a> -* <a href="#_oncefunc">`_.once`</a> -* <a href="#_overargsfunc">`_.overArgs`</a> -* <a href="#_partialfunc-partials">`_.partial`</a> -* <a href="#_partialrightfunc-partials">`_.partialRight`</a> -* <a href="#_reargfunc-indexes">`_.rearg`</a> -* <a href="#_restfunc-startfunclength-1">`_.rest`</a> -* <a href="#_spreadfunc-start0">`_.spread`</a> -* <a href="#_throttlefunc-wait0-options-optionsleadingtrue-optionstrailingtrue">`_.throttle`</a> -* <a href="#_unaryfunc">`_.unary`</a> -* <a href="#_wrapvalue-wrapperidentity">`_.wrap`</a> - -<!-- /div --> - -<!-- div --> - -## `Lang` -* <a href="#_castarrayvalue">`_.castArray`</a> -* <a href="#_clonevalue">`_.clone`</a> -* <a href="#_clonedeepvalue">`_.cloneDeep`</a> -* <a href="#_clonedeepwithvalue-customizer">`_.cloneDeepWith`</a> -* <a href="#_clonewithvalue-customizer">`_.cloneWith`</a> -* <a href="#_eqvalue-other">`_.eq`</a> -* <a href="#_gtvalue-other">`_.gt`</a> -* <a href="#_gtevalue-other">`_.gte`</a> -* <a href="#_isargumentsvalue">`_.isArguments`</a> -* <a href="#_isarrayvalue">`_.isArray`</a> -* <a href="#_isarraybuffervalue">`_.isArrayBuffer`</a> -* <a href="#_isarraylikevalue">`_.isArrayLike`</a> -* <a href="#_isarraylikeobjectvalue">`_.isArrayLikeObject`</a> -* <a href="#_isbooleanvalue">`_.isBoolean`</a> -* <a href="#_isbuffervalue">`_.isBuffer`</a> -* <a href="#_isdatevalue">`_.isDate`</a> -* <a href="#_iselementvalue">`_.isElement`</a> -* <a href="#_isemptyvalue">`_.isEmpty`</a> -* <a href="#_isequalvalue-other">`_.isEqual`</a> -* <a href="#_isequalwithvalue-other-customizer">`_.isEqualWith`</a> -* <a href="#_iserrorvalue">`_.isError`</a> -* <a href="#_isfinitevalue">`_.isFinite`</a> -* <a href="#_isfunctionvalue">`_.isFunction`</a> -* <a href="#_isintegervalue">`_.isInteger`</a> -* <a href="#_islengthvalue">`_.isLength`</a> -* <a href="#_ismapvalue">`_.isMap`</a> -* <a href="#_ismatchobject-source">`_.isMatch`</a> -* <a href="#_ismatchwithobject-source-customizer">`_.isMatchWith`</a> -* <a href="#_isnanvalue">`_.isNaN`</a> -* <a href="#_isnativevalue">`_.isNative`</a> -* <a href="#_isnilvalue">`_.isNil`</a> -* <a href="#_isnullvalue">`_.isNull`</a> -* <a href="#_isnumbervalue">`_.isNumber`</a> -* <a href="#_isobjectvalue">`_.isObject`</a> -* <a href="#_isobjectlikevalue">`_.isObjectLike`</a> -* <a href="#_isplainobjectvalue">`_.isPlainObject`</a> -* <a href="#_isregexpvalue">`_.isRegExp`</a> -* <a href="#_issafeintegervalue">`_.isSafeInteger`</a> -* <a href="#_issetvalue">`_.isSet`</a> -* <a href="#_isstringvalue">`_.isString`</a> -* <a href="#_issymbolvalue">`_.isSymbol`</a> -* <a href="#_istypedarrayvalue">`_.isTypedArray`</a> -* <a href="#_isundefinedvalue">`_.isUndefined`</a> -* <a href="#_isweakmapvalue">`_.isWeakMap`</a> -* <a href="#_isweaksetvalue">`_.isWeakSet`</a> -* <a href="#_ltvalue-other">`_.lt`</a> -* <a href="#_ltevalue-other">`_.lte`</a> -* <a href="#_toarrayvalue">`_.toArray`</a> -* <a href="#_tofinitevalue">`_.toFinite`</a> -* <a href="#_tointegervalue">`_.toInteger`</a> -* <a href="#_tolengthvalue">`_.toLength`</a> -* <a href="#_tonumbervalue">`_.toNumber`</a> -* <a href="#_toplainobjectvalue">`_.toPlainObject`</a> -* <a href="#_tosafeintegervalue">`_.toSafeInteger`</a> -* <a href="#_tostringvalue">`_.toString`</a> - -<!-- /div --> - -<!-- div --> - -## `Math` -* <a href="#_addaugend-addend">`_.add`</a> -* <a href="#_ceilnumber-precision0">`_.ceil`</a> -* <a href="#_dividedividend-divisor">`_.divide`</a> -* <a href="#_floornumber-precision0">`_.floor`</a> -* <a href="#_maxarray">`_.max`</a> -* <a href="#_maxbyarray-iteratee_identity">`_.maxBy`</a> -* <a href="#_meanarray">`_.mean`</a> -* <a href="#_meanbyarray-iteratee_identity">`_.meanBy`</a> -* <a href="#_minarray">`_.min`</a> -* <a href="#_minbyarray-iteratee_identity">`_.minBy`</a> -* <a href="#_multiplymultiplier-multiplicand">`_.multiply`</a> -* <a href="#_roundnumber-precision0">`_.round`</a> -* <a href="#_subtractminuend-subtrahend">`_.subtract`</a> -* <a href="#_sumarray">`_.sum`</a> -* <a href="#_sumbyarray-iteratee_identity">`_.sumBy`</a> - -<!-- /div --> - -<!-- div --> - -## `Number` -* <a href="#_clampnumber-lower-upper">`_.clamp`</a> -* <a href="#_inrangenumber-start0-end">`_.inRange`</a> -* <a href="#_randomlower0-upper1-floating">`_.random`</a> - -<!-- /div --> - -<!-- div --> - -## `Object` -* <a href="#_assignobject-sources">`_.assign`</a> -* <a href="#_assigninobject-sources">`_.assignIn`</a> -* <a href="#_assigninwithobject-sources-customizer">`_.assignInWith`</a> -* <a href="#_assignwithobject-sources-customizer">`_.assignWith`</a> -* <a href="#_atobject-paths">`_.at`</a> -* <a href="#_createprototype-properties">`_.create`</a> -* <a href="#_defaultsobject-sources">`_.defaults`</a> -* <a href="#_defaultsdeepobject-sources">`_.defaultsDeep`</a> -* <a href="#_topairsobject" class="alias">`_.entries` -> `toPairs`</a> -* <a href="#_topairsinobject" class="alias">`_.entriesIn` -> `toPairsIn`</a> -* <a href="#_assigninobject-sources" class="alias">`_.extend` -> `assignIn`</a> -* <a href="#_assigninwithobject-sources-customizer" class="alias">`_.extendWith` -> `assignInWith`</a> -* <a href="#_findkeyobject-predicate_identity">`_.findKey`</a> -* <a href="#_findlastkeyobject-predicate_identity">`_.findLastKey`</a> -* <a href="#_forinobject-iteratee_identity">`_.forIn`</a> -* <a href="#_forinrightobject-iteratee_identity">`_.forInRight`</a> -* <a href="#_forownobject-iteratee_identity">`_.forOwn`</a> -* <a href="#_forownrightobject-iteratee_identity">`_.forOwnRight`</a> -* <a href="#_functionsobject">`_.functions`</a> -* <a href="#_functionsinobject">`_.functionsIn`</a> -* <a href="#_getobject-path-defaultvalue">`_.get`</a> -* <a href="#_hasobject-path">`_.has`</a> -* <a href="#_hasinobject-path">`_.hasIn`</a> -* <a href="#_invertobject">`_.invert`</a> -* <a href="#_invertbyobject-iteratee_identity">`_.invertBy`</a> -* <a href="#_invokeobject-path-args">`_.invoke`</a> -* <a href="#_keysobject">`_.keys`</a> -* <a href="#_keysinobject">`_.keysIn`</a> -* <a href="#_mapkeysobject-iteratee_identity">`_.mapKeys`</a> -* <a href="#_mapvaluesobject-iteratee_identity">`_.mapValues`</a> -* <a href="#_mergeobject-sources">`_.merge`</a> -* <a href="#_mergewithobject-sources-customizer">`_.mergeWith`</a> -* <a href="#_omitobject-props">`_.omit`</a> -* <a href="#_omitbyobject-predicate_identity">`_.omitBy`</a> -* <a href="#_pickobject-props">`_.pick`</a> -* <a href="#_pickbyobject-predicate_identity">`_.pickBy`</a> -* <a href="#_resultobject-path-defaultvalue">`_.result`</a> -* <a href="#_setobject-path-value">`_.set`</a> -* <a href="#_setwithobject-path-value-customizer">`_.setWith`</a> -* <a href="#_topairsobject">`_.toPairs`</a> -* <a href="#_topairsinobject">`_.toPairsIn`</a> -* <a href="#_transformobject-iteratee_identity-accumulator">`_.transform`</a> -* <a href="#_unsetobject-path">`_.unset`</a> -* <a href="#_updateobject-path-updater">`_.update`</a> -* <a href="#_updatewithobject-path-updater-customizer">`_.updateWith`</a> -* <a href="#_valuesobject">`_.values`</a> -* <a href="#_valuesinobject">`_.valuesIn`</a> - -<!-- /div --> - -<!-- div --> - -## `Seq` -* <a href="#_value">`_`</a> -* <a href="#_chainvalue">`_.chain`</a> -* <a href="#_tapvalue-interceptor">`_.tap`</a> -* <a href="#_thruvalue-interceptor">`_.thru`</a> -* <a href="#_prototypesymboliterator">`_.prototype[Symbol.iterator]`</a> -* <a href="#_prototypeatpaths">`_.prototype.at`</a> -* <a href="#_prototypechain">`_.prototype.chain`</a> -* <a href="#_prototypecommit">`_.prototype.commit`</a> -* <a href="#_prototypenext">`_.prototype.next`</a> -* <a href="#_prototypeplantvalue">`_.prototype.plant`</a> -* <a href="#_prototypereverse">`_.prototype.reverse`</a> -* <a href="#_prototypevalue" class="alias">`_.prototype.toJSON` -> `value`</a> -* <a href="#_prototypevalue">`_.prototype.value`</a> -* <a href="#_prototypevalue" class="alias">`_.prototype.valueOf` -> `value`</a> - -<!-- /div --> - -<!-- div --> - -## `String` -* <a href="#_camelcasestring">`_.camelCase`</a> -* <a href="#_capitalizestring">`_.capitalize`</a> -* <a href="#_deburrstring">`_.deburr`</a> -* <a href="#_endswithstring-target-positionstringlength">`_.endsWith`</a> -* <a href="#_escapestring">`_.escape`</a> -* <a href="#_escaperegexpstring">`_.escapeRegExp`</a> -* <a href="#_kebabcasestring">`_.kebabCase`</a> -* <a href="#_lowercasestring">`_.lowerCase`</a> -* <a href="#_lowerfirststring">`_.lowerFirst`</a> -* <a href="#_padstring-length0-chars">`_.pad`</a> -* <a href="#_padendstring-length0-chars">`_.padEnd`</a> -* <a href="#_padstartstring-length0-chars">`_.padStart`</a> -* <a href="#_parseintstring-radix10">`_.parseInt`</a> -* <a href="#_repeatstring-n1">`_.repeat`</a> -* <a href="#_replacestring-pattern-replacement">`_.replace`</a> -* <a href="#_snakecasestring">`_.snakeCase`</a> -* <a href="#_splitstring-separator-limit">`_.split`</a> -* <a href="#_startcasestring">`_.startCase`</a> -* <a href="#_startswithstring-target-position0">`_.startsWith`</a> -* <a href="#_templatestring-options-optionsescape_templatesettingsescape-optionsevaluate_templatesettingsevaluate-optionsimports_templatesettingsimports-optionsinterpolate_templatesettingsinterpolate-optionssourceurllodashtemplatesourcesn-optionsvariableobj">`_.template`</a> -* <a href="#_tolowerstring">`_.toLower`</a> -* <a href="#_toupperstring">`_.toUpper`</a> -* <a href="#_trimstring-charswhitespace">`_.trim`</a> -* <a href="#_trimendstring-charswhitespace">`_.trimEnd`</a> -* <a href="#_trimstartstring-charswhitespace">`_.trimStart`</a> -* <a href="#_truncatestring-options-optionslength30-optionsomission-optionsseparator">`_.truncate`</a> -* <a href="#_unescapestring">`_.unescape`</a> -* <a href="#_uppercasestring">`_.upperCase`</a> -* <a href="#_upperfirststring">`_.upperFirst`</a> -* <a href="#_wordsstring-pattern">`_.words`</a> - -<!-- /div --> - -<!-- div --> - -## `Util` -* <a href="#_attemptfunc-args">`_.attempt`</a> -* <a href="#_bindallobject-methodnames">`_.bindAll`</a> -* <a href="#_condpairs">`_.cond`</a> -* <a href="#_conformssource">`_.conforms`</a> -* <a href="#_constantvalue">`_.constant`</a> -* <a href="#_flowfuncs">`_.flow`</a> -* <a href="#_flowrightfuncs">`_.flowRight`</a> -* <a href="#_identityvalue">`_.identity`</a> -* <a href="#_iterateefunc_identity">`_.iteratee`</a> -* <a href="#_matchessource">`_.matches`</a> -* <a href="#_matchespropertypath-srcvalue">`_.matchesProperty`</a> -* <a href="#_methodpath-args">`_.method`</a> -* <a href="#_methodofobject-args">`_.methodOf`</a> -* <a href="#_mixinobjectlodash-source-options-optionschaintrue">`_.mixin`</a> -* <a href="#_noconflict">`_.noConflict`</a> -* <a href="#_noop">`_.noop`</a> -* <a href="#_nthargn0">`_.nthArg`</a> -* <a href="#_overiteratees_identity">`_.over`</a> -* <a href="#_overeverypredicates_identity">`_.overEvery`</a> -* <a href="#_oversomepredicates_identity">`_.overSome`</a> -* <a href="#_propertypath">`_.property`</a> -* <a href="#_propertyofobject">`_.propertyOf`</a> -* <a href="#_rangestart0-end-step1">`_.range`</a> -* <a href="#_rangerightstart0-end-step1">`_.rangeRight`</a> -* <a href="#_runincontextcontextroot">`_.runInContext`</a> -* <a href="#_stubarray">`_.stubArray`</a> -* <a href="#_stubfalse">`_.stubFalse`</a> -* <a href="#_stubobject">`_.stubObject`</a> -* <a href="#_stubstring">`_.stubString`</a> -* <a href="#_stubtrue">`_.stubTrue`</a> -* <a href="#_timesn-iteratee_identity">`_.times`</a> -* <a href="#_topathvalue">`_.toPath`</a> -* <a href="#_uniqueidprefix">`_.uniqueId`</a> - -<!-- /div --> - -<!-- div --> - -## `Properties` -* <a href="#_version">`_.VERSION`</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 --> - -## `Methods` -* <a href="#_templatesettingsimports_">`_.templateSettings.imports._`</a> - -<!-- /div --> - -<!-- /div --> - -<!-- div class="doc-container" --> - -<!-- div --> - -## `“Array” Methods` - -<!-- div --> - -### <a id="_chunkarray-size1"></a>`_.chunk(array, [size=1])` -<a href="#_chunkarray-size1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6118 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.chunk "See the npm package") - -Creates an array of elements split into groups the length of `size`. -If `array` can't be split evenly, the final chunk will be the remaining -elements. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The array to process. -2. `[size=1]` *(number)*: The length of each chunk - -#### Returns -*(Array)*: Returns the new array of chunks. - -#### Example -```js -_.chunk(['a', 'b', 'c', 'd'], 2); -// => [['a', 'b'], ['c', 'd']] - -_.chunk(['a', 'b', 'c', 'd'], 3); -// => [['a', 'b', 'c'], ['d']] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_compactarray"></a>`_.compact(array)` -<a href="#_compactarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6153 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.compact "See the npm package") - -Creates an array with all falsey values removed. The values `false`, `null`, -`0`, `""`, `undefined`, and `NaN` are falsey. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to compact. - -#### Returns -*(Array)*: Returns the new array of filtered values. - -#### Example -```js -_.compact([0, 1, false, 2, '', 3]); -// => [1, 2, 3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_concatarray-values"></a>`_.concat(array, [values])` -<a href="#_concatarray-values">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6190 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.concat "See the npm package") - -Creates a new array concatenating `array` with any additional arrays -and/or values. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to concatenate. -2. `[values]` *(...*)*: The values to concatenate. - -#### Returns -*(Array)*: Returns the new concatenated array. - -#### Example -```js -var array = [1]; -var other = _.concat(array, 2, [3], [[4]]); - -console.log(other); -// => [1, 2, 3, [4]] - -console.log(array); -// => [1] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_differencearray-values"></a>`_.difference(array, [values])` -<a href="#_differencearray-values">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6223 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.difference "See the npm package") - -Creates an array of unique `array` values not included in the other given -arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) -for equality comparisons. The order of result values is determined by the -order they occur in the first array. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to inspect. -2. `[values]` *(...Array)*: The values to exclude. - -#### Returns -*(Array)*: Returns the new array of filtered values. - -#### Example -```js -_.difference([2, 1], [2, 3]); -// => [1] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_differencebyarray-values-iteratee_identity"></a>`_.differenceBy(array, [values], [iteratee=_.identity])` -<a href="#_differencebyarray-values-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6253 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.differenceby "See the npm package") - -This method is like `_.difference` except that it accepts `iteratee` which -is invoked for each element of `array` and `values` to generate the criterion -by which they're compared. Result values are chosen from the first array. -The iteratee is invoked with one argument: *(value)*. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to inspect. -2. `[values]` *(...Array)*: The values to exclude. -3. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(Array)*: Returns the new array of filtered values. - -#### Example -```js -_.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); -// => [1.2] - -// The `_.property` iteratee shorthand. -_.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); -// => [{ 'x': 2 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_differencewitharray-values-comparator"></a>`_.differenceWith(array, [values], [comparator])` -<a href="#_differencewitharray-values-comparator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6284 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.differencewith "See the npm package") - -This method is like `_.difference` except that it accepts `comparator` -which is invoked to compare elements of `array` to `values`. Result values -are chosen from the first array. The comparator is invoked with two arguments:<br> -*(arrVal, othVal)*. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to inspect. -2. `[values]` *(...Array)*: The values to exclude. -3. `[comparator]` *(Function)*: The comparator invoked per element. - -#### Returns -*(Array)*: Returns the new array of filtered values. - -#### Example -```js -var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - -_.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); -// => [{ 'x': 2, 'y': 1 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_droparray-n1"></a>`_.drop(array, [n=1])` -<a href="#_droparray-n1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6319 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.drop "See the npm package") - -Creates a slice of `array` with `n` elements dropped from the beginning. - -#### Since -0.5.0 -#### Arguments -1. `array` *(Array)*: The array to query. -2. `[n=1]` *(number)*: The number of elements to drop. - -#### Returns -*(Array)*: Returns the slice of `array`. - -#### Example -```js -_.drop([1, 2, 3]); -// => [2, 3] - -_.drop([1, 2, 3], 2); -// => [3] - -_.drop([1, 2, 3], 5); -// => [] - -_.drop([1, 2, 3], 0); -// => [1, 2, 3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_droprightarray-n1"></a>`_.dropRight(array, [n=1])` -<a href="#_droprightarray-n1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6353 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.dropright "See the npm package") - -Creates a slice of `array` with `n` elements dropped from the end. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The array to query. -2. `[n=1]` *(number)*: The number of elements to drop. - -#### Returns -*(Array)*: Returns the slice of `array`. - -#### Example -```js -_.dropRight([1, 2, 3]); -// => [1, 2] - -_.dropRight([1, 2, 3], 2); -// => [1] - -_.dropRight([1, 2, 3], 5); -// => [] - -_.dropRight([1, 2, 3], 0); -// => [1, 2, 3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_droprightwhilearray-predicate_identity"></a>`_.dropRightWhile(array, [predicate=_.identity])` -<a href="#_droprightwhilearray-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6399 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.droprightwhile "See the npm package") - -Creates a slice of `array` excluding elements dropped from the end. -Elements are dropped until `predicate` returns falsey. The predicate is -invoked with three arguments: *(value, index, array)*. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The array to query. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the slice of `array`. - -#### Example -```js -var users = [ - { 'user': 'barney', 'active': true }, - { 'user': 'fred', 'active': false }, - { 'user': 'pebbles', 'active': false } -]; - -_.dropRightWhile(users, function(o) { return !o.active; }); -// => objects for ['barney'] - -// The `_.matches` iteratee shorthand. -_.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); -// => objects for ['barney', 'fred'] - -// The `_.matchesProperty` iteratee shorthand. -_.dropRightWhile(users, ['active', false]); -// => objects for ['barney'] - -// The `_.property` iteratee shorthand. -_.dropRightWhile(users, 'active'); -// => objects for ['barney', 'fred', 'pebbles'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_dropwhilearray-predicate_identity"></a>`_.dropWhile(array, [predicate=_.identity])` -<a href="#_dropwhilearray-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6441 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.dropwhile "See the npm package") - -Creates a slice of `array` excluding elements dropped from the beginning. -Elements are dropped until `predicate` returns falsey. The predicate is -invoked with three arguments: *(value, index, array)*. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The array to query. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the slice of `array`. - -#### Example -```js -var users = [ - { 'user': 'barney', 'active': false }, - { 'user': 'fred', 'active': false }, - { 'user': 'pebbles', 'active': true } -]; - -_.dropWhile(users, function(o) { return !o.active; }); -// => objects for ['pebbles'] - -// The `_.matches` iteratee shorthand. -_.dropWhile(users, { 'user': 'barney', 'active': false }); -// => objects for ['fred', 'pebbles'] - -// The `_.matchesProperty` iteratee shorthand. -_.dropWhile(users, ['active', false]); -// => objects for ['pebbles'] - -// The `_.property` iteratee shorthand. -_.dropWhile(users, 'active'); -// => objects for ['barney', 'fred', 'pebbles'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_fillarray-value-start0-endarraylength"></a>`_.fill(array, value, [start=0], [end=array.length])` -<a href="#_fillarray-value-start0-endarraylength">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6476 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.fill "See the npm package") - -Fills elements of `array` with `value` from `start` up to, but not -including, `end`. -<br> -<br> -**Note:** This method mutates `array`. - -#### Since -3.2.0 -#### Arguments -1. `array` *(Array)*: The array to fill. -2. `value` *(*)*: The value to fill `array` with. -3. `[start=0]` *(number)*: The start position. -4. `[end=array.length]` *(number)*: The end position. - -#### Returns -*(Array)*: Returns `array`. - -#### Example -```js -var array = [1, 2, 3]; - -_.fill(array, 'a'); -console.log(array); -// => ['a', 'a', 'a'] - -_.fill(Array(3), 2); -// => [2, 2, 2] - -_.fill([4, 6, 8, 10], '*', 1, 3); -// => [4, '*', '*', 10] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_findindexarray-predicate_identity-fromindex0"></a>`_.findIndex(array, [predicate=_.identity], [fromIndex=0])` -<a href="#_findindexarray-predicate_identity-fromindex0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6524 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.findindex "See the npm package") - -This method is like `_.find` except that it returns the index of the first -element `predicate` returns truthy for instead of the element itself. - -#### Since -1.1.0 -#### Arguments -1. `array` *(Array)*: The array to search. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. -3. `[fromIndex=0]` *(number)*: The index to search from. - -#### Returns -*(number)*: Returns the index of the found element, else `-1`. - -#### Example -```js -var users = [ - { 'user': 'barney', 'active': false }, - { 'user': 'fred', 'active': false }, - { 'user': 'pebbles', 'active': true } -]; - -_.findIndex(users, function(o) { return o.user == 'barney'; }); -// => 0 - -// The `_.matches` iteratee shorthand. -_.findIndex(users, { 'user': 'fred', 'active': false }); -// => 1 - -// The `_.matchesProperty` iteratee shorthand. -_.findIndex(users, ['active', false]); -// => 0 - -// The `_.property` iteratee shorthand. -_.findIndex(users, 'active'); -// => 2 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_findlastindexarray-predicate_identity-fromindexarraylength-1"></a>`_.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1])` -<a href="#_findlastindexarray-predicate_identity-fromindexarraylength-1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6572 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.findlastindex "See the npm package") - -This method is like `_.findIndex` except that it iterates over elements -of `collection` from right to left. - -#### Since -2.0.0 -#### Arguments -1. `array` *(Array)*: The array to search. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. -3. `[fromIndex=array.length-1]` *(number)*: The index to search from. - -#### Returns -*(number)*: Returns the index of the found element, else `-1`. - -#### Example -```js -var users = [ - { 'user': 'barney', 'active': true }, - { 'user': 'fred', 'active': false }, - { 'user': 'pebbles', 'active': false } -]; - -_.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); -// => 2 - -// The `_.matches` iteratee shorthand. -_.findLastIndex(users, { 'user': 'barney', 'active': true }); -// => 0 - -// The `_.matchesProperty` iteratee shorthand. -_.findLastIndex(users, ['active', false]); -// => 2 - -// The `_.property` iteratee shorthand. -_.findLastIndex(users, 'active'); -// => 0 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_flattenarray"></a>`_.flatten(array)` -<a href="#_flattenarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6601 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.flatten "See the npm package") - -Flattens `array` a single level deep. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to flatten. - -#### Returns -*(Array)*: Returns the new flattened array. - -#### Example -```js -_.flatten([1, [2, [3, [4]], 5]]); -// => [1, 2, [3, [4]], 5] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_flattendeeparray"></a>`_.flattenDeep(array)` -<a href="#_flattendeeparray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6620 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.flattendeep "See the npm package") - -Recursively flattens `array`. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The array to flatten. - -#### Returns -*(Array)*: Returns the new flattened array. - -#### Example -```js -_.flattenDeep([1, [2, [3, [4]], 5]]); -// => [1, 2, 3, 4, 5] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_flattendeptharray-depth1"></a>`_.flattenDepth(array, [depth=1])` -<a href="#_flattendeptharray-depth1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6645 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.flattendepth "See the npm package") - -Recursively flatten `array` up to `depth` times. - -#### Since -4.4.0 -#### Arguments -1. `array` *(Array)*: The array to flatten. -2. `[depth=1]` *(number)*: The maximum recursion depth. - -#### Returns -*(Array)*: Returns the new flattened array. - -#### Example -```js -var array = [1, [2, [3, [4]], 5]]; - -_.flattenDepth(array, 1); -// => [1, 2, [3, [4]], 5] - -_.flattenDepth(array, 2); -// => [1, 2, 3, [4], 5] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_frompairspairs"></a>`_.fromPairs(pairs)` -<a href="#_frompairspairs">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6669 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.frompairs "See the npm package") - -The inverse of `_.toPairs`; this method returns an object composed -from key-value `pairs`. - -#### Since -4.0.0 -#### Arguments -1. `pairs` *(Array)*: The key-value pairs. - -#### Returns -*(Object)*: Returns the new object. - -#### Example -```js -_.fromPairs([['fred', 30], ['barney', 40]]); -// => { 'fred': 30, 'barney': 40 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_headarray"></a>`_.head(array)` -<a href="#_headarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6699 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.head "See the npm package") - -Gets the first element of `array`. - -#### Since -0.1.0 -#### Aliases -*_.first* - -#### Arguments -1. `array` *(Array)*: The array to query. - -#### Returns -*(*)*: Returns the first element of `array`. - -#### Example -```js -_.head([1, 2, 3]); -// => 1 - -_.head([]); -// => undefined -``` -* * * - -<!-- /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/4.13.1/lodash.js#L6726 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.indexof "See the npm package") - -Gets the index at which the first occurrence of `value` is found in `array` -using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) -for equality comparisons. If `fromIndex` is negative, it's used as the -offset from the end of `array`. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to search. -2. `value` *(*)*: The value to search for. -3. `[fromIndex=0]` *(number)*: The index to search from. - -#### Returns -*(number)*: Returns the index of the matched value, else `-1`. - -#### Example -```js -_.indexOf([1, 2, 1, 2], 2); -// => 1 - -// Search from the `fromIndex`. -_.indexOf([1, 2, 1, 2], 2, 2); -// => 3 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_initialarray"></a>`_.initial(array)` -<a href="#_initialarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6752 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.initial "See the npm package") - -Gets all but the last element of `array`. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to query. - -#### Returns -*(Array)*: Returns the slice of `array`. - -#### Example -```js -_.initial([1, 2, 3]); -// => [1, 2] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_intersectionarrays"></a>`_.intersection([arrays])` -<a href="#_intersectionarrays">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6773 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.intersection "See the npm package") - -Creates an array of unique values that are included in all given arrays -using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) -for equality comparisons. The order of result values is determined by the -order they occur in the first array. - -#### Since -0.1.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to inspect. - -#### Returns -*(Array)*: Returns the new array of intersecting values. - -#### Example -```js -_.intersection([2, 1], [2, 3]); -// => [2] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_intersectionbyarrays-iteratee_identity"></a>`_.intersectionBy([arrays], [iteratee=_.identity])` -<a href="#_intersectionbyarrays-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6803 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.intersectionby "See the npm package") - -This method is like `_.intersection` except that it accepts `iteratee` -which is invoked for each element of each `arrays` to generate the criterion -by which they're compared. Result values are chosen from the first array. -The iteratee is invoked with one argument: *(value)*. - -#### Since -4.0.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to inspect. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(Array)*: Returns the new array of intersecting values. - -#### Example -```js -_.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); -// => [2.1] - -// The `_.property` iteratee shorthand. -_.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); -// => [{ 'x': 1 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_intersectionwitharrays-comparator"></a>`_.intersectionWith([arrays], [comparator])` -<a href="#_intersectionwitharrays-comparator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6838 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.intersectionwith "See the npm package") - -This method is like `_.intersection` except that it accepts `comparator` -which is invoked to compare elements of `arrays`. Result values are chosen -from the first array. The comparator is invoked with two arguments:<br> -*(arrVal, othVal)*. - -#### Since -4.0.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to inspect. -2. `[comparator]` *(Function)*: The comparator invoked per element. - -#### Returns -*(Array)*: Returns the new array of intersecting values. - -#### Example -```js -var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; -var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - -_.intersectionWith(objects, others, _.isEqual); -// => [{ 'x': 1, 'y': 2 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_joinarray-separator-"></a>`_.join(array, [separator=','])` -<a href="#_joinarray-separator-">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6867 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.join "See the npm package") - -Converts all elements in `array` into a string separated by `separator`. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to convert. -2. `[separator=',']` *(string)*: The element separator. - -#### Returns -*(string)*: Returns the joined string. - -#### Example -```js -_.join(['a', 'b', 'c'], '~'); -// => 'a~b~c' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_lastarray"></a>`_.last(array)` -<a href="#_lastarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6885 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.last "See the npm package") - -Gets the last element of `array`. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to query. - -#### Returns -*(*)*: Returns the last element of `array`. - -#### Example -```js -_.last([1, 2, 3]); -// => 3 -``` -* * * - -<!-- /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/4.13.1/lodash.js#L6911 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.lastindexof "See the npm package") - -This method is like `_.indexOf` except that it iterates over elements of -`array` from right to left. - -#### Since -0.1.0 -#### 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, else `-1`. - -#### Example -```js -_.lastIndexOf([1, 2, 1, 2], 2); -// => 3 - -// Search from the `fromIndex`. -_.lastIndexOf([1, 2, 1, 2], 2, 2); -// => 1 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_ntharray-n0"></a>`_.nth(array, [n=0])` -<a href="#_ntharray-n0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6957 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.nth "See the npm package") - -Gets the element at index `n` of `array`. If `n` is negative, the nth -element from the end is returned. - -#### Since -4.11.0 -#### Arguments -1. `array` *(Array)*: The array to query. -2. `[n=0]` *(number)*: The index of the element to return. - -#### Returns -*(*)*: Returns the nth element of `array`. - -#### Example -```js -var array = ['a', 'b', 'c', 'd']; - -_.nth(array, 1); -// => 'b' - -_.nth(array, -2); -// => 'c'; -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_pullarray-values"></a>`_.pull(array, [values])` -<a href="#_pullarray-values">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L6984 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.pull "See the npm package") - -Removes all given values from `array` using -[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) -for equality comparisons. -<br> -<br> -**Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` -to remove elements from an array by predicate. - -#### Since -2.0.0 -#### Arguments -1. `array` *(Array)*: The array to modify. -2. `[values]` *(...*)*: The values to remove. - -#### Returns -*(Array)*: Returns `array`. - -#### Example -```js -var array = ['a', 'b', 'c', 'a', 'b', 'c']; - -_.pull(array, 'a', 'c'); -console.log(array); -// => ['b', 'b'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_pullallarray-values"></a>`_.pullAll(array, values)` -<a href="#_pullallarray-values">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7006 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.pullall "See the npm package") - -This method is like `_.pull` except that it accepts an array of values to remove. -<br> -<br> -**Note:** Unlike `_.difference`, this method mutates `array`. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to modify. -2. `values` *(Array)*: The values to remove. - -#### Returns -*(Array)*: Returns `array`. - -#### Example -```js -var array = ['a', 'b', 'c', 'a', 'b', 'c']; - -_.pullAll(array, ['a', 'c']); -console.log(array); -// => ['b', 'b'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_pullallbyarray-values-iteratee_identity"></a>`_.pullAllBy(array, values, [iteratee=_.identity])` -<a href="#_pullallbyarray-values-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7036 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.pullallby "See the npm package") - -This method is like `_.pullAll` except that it accepts `iteratee` which is -invoked for each element of `array` and `values` to generate the criterion -by which they're compared. The iteratee is invoked with one argument: *(value)*. -<br> -<br> -**Note:** Unlike `_.differenceBy`, this method mutates `array`. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to modify. -2. `values` *(Array)*: The values to remove. -3. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(Array)*: Returns `array`. - -#### Example -```js -var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; - -_.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); -console.log(array); -// => [{ 'x': 2 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_pullallwitharray-values-comparator"></a>`_.pullAllWith(array, values, [comparator])` -<a href="#_pullallwitharray-values-comparator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7065 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.pullallwith "See the npm package") - -This method is like `_.pullAll` except that it accepts `comparator` which -is invoked to compare elements of `array` to `values`. The comparator is -invoked with two arguments: *(arrVal, othVal)*. -<br> -<br> -**Note:** Unlike `_.differenceWith`, this method mutates `array`. - -#### Since -4.6.0 -#### Arguments -1. `array` *(Array)*: The array to modify. -2. `values` *(Array)*: The values to remove. -3. `[comparator]` *(Function)*: The comparator invoked per element. - -#### Returns -*(Array)*: Returns `array`. - -#### Example -```js -var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; - -_.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); -console.log(array); -// => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_pullatarray-indexes"></a>`_.pullAt(array, [indexes])` -<a href="#_pullatarray-indexes">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7095 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.pullat "See the npm package") - -Removes elements from `array` corresponding to `indexes` and returns an -array of removed elements. -<br> -<br> -**Note:** Unlike `_.at`, this method mutates `array`. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The array to modify. -2. `[indexes]` *(...(number|number[]))*: The indexes of elements to remove. - -#### Returns -*(Array)*: Returns the new array of removed elements. - -#### Example -```js -var array = ['a', 'b', 'c', 'd']; -var pulled = _.pullAt(array, [1, 3]); - -console.log(array); -// => ['a', 'c'] - -console.log(pulled); -// => ['b', 'd'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_removearray-predicate_identity"></a>`_.remove(array, [predicate=_.identity])` -<a href="#_removearray-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7137 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.remove "See the npm package") - -Removes all elements from `array` that `predicate` returns truthy for -and returns an array of the removed elements. The predicate is invoked -with three arguments: *(value, index, array)*. -<br> -<br> -**Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` -to pull elements from an array by value. - -#### Since -2.0.0 -#### Arguments -1. `array` *(Array)*: The array to modify. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the new array of removed elements. - -#### Example -```js -var array = [1, 2, 3, 4]; -var evens = _.remove(array, function(n) { - return n % 2 == 0; -}); - -console.log(array); -// => [1, 3] - -console.log(evens); -// => [2, 4] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_reversearray"></a>`_.reverse(array)` -<a href="#_reversearray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7181 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.reverse "See the npm package") - -Reverses `array` so that the first element becomes the last, the second -element becomes the second to last, and so on. -<br> -<br> -**Note:** This method mutates `array` and is based on -[`Array#reverse`](https://mdn.io/Array/reverse). - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to modify. - -#### Returns -*(Array)*: Returns `array`. - -#### Example -```js -var array = [1, 2, 3]; - -_.reverse(array); -// => [3, 2, 1] - -console.log(array); -// => [3, 2, 1] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_slicearray-start0-endarraylength"></a>`_.slice(array, [start=0], [end=array.length])` -<a href="#_slicearray-start0-endarraylength">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7201 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.slice "See the npm package") - -Creates a slice of `array` from `start` up to, but not including, `end`. -<br> -<br> -**Note:** This method is used instead of -[`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are -returned. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The array to slice. -2. `[start=0]` *(number)*: The start position. -3. `[end=array.length]` *(number)*: The end position. - -#### Returns -*(Array)*: Returns the slice of `array`. - -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sortedindexarray-value"></a>`_.sortedIndex(array, value)` -<a href="#_sortedindexarray-value">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7234 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sortedindex "See the npm package") - -Uses a binary search to determine the lowest index at which `value` -should be inserted into `array` in order to maintain its sort order. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The sorted array to inspect. -2. `value` *(*)*: The value to evaluate. - -#### Returns -*(number)*: Returns the index at which `value` should be inserted into `array`. - -#### Example -```js -_.sortedIndex([30, 50], 40); -// => 1 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sortedindexbyarray-value-iteratee_identity"></a>`_.sortedIndexBy(array, value, [iteratee=_.identity])` -<a href="#_sortedindexbyarray-value-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7264 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sortedindexby "See the npm package") - -This method is like `_.sortedIndex` except that it accepts `iteratee` -which is invoked for `value` and each element of `array` to compute their -sort ranking. The iteratee is invoked with one argument: *(value)*. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The sorted array to inspect. -2. `value` *(*)*: The value to evaluate. -3. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(number)*: Returns the index at which `value` should be inserted into `array`. - -#### Example -```js -var objects = [{ 'x': 4 }, { 'x': 5 }]; - -_.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); -// => 0 - -// The `_.property` iteratee shorthand. -_.sortedIndexBy(objects, { 'x': 4 }, 'x'); -// => 0 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sortedindexofarray-value"></a>`_.sortedIndexOf(array, value)` -<a href="#_sortedindexofarray-value">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7284 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sortedindexof "See the npm package") - -This method is like `_.indexOf` except that it performs a binary -search on a sorted `array`. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to search. -2. `value` *(*)*: The value to search for. - -#### Returns -*(number)*: Returns the index of the matched value, else `-1`. - -#### Example -```js -_.sortedIndexOf([4, 5, 5, 5, 6], 5); -// => 1 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sortedlastindexarray-value"></a>`_.sortedLastIndex(array, value)` -<a href="#_sortedlastindexarray-value">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7313 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindex "See the npm package") - -This method is like `_.sortedIndex` except that it returns the highest -index at which `value` should be inserted into `array` in order to -maintain its sort order. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The sorted array to inspect. -2. `value` *(*)*: The value to evaluate. - -#### Returns -*(number)*: Returns the index at which `value` should be inserted into `array`. - -#### Example -```js -_.sortedLastIndex([4, 5, 5, 5, 6], 5); -// => 4 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sortedlastindexbyarray-value-iteratee_identity"></a>`_.sortedLastIndexBy(array, value, [iteratee=_.identity])` -<a href="#_sortedlastindexbyarray-value-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7343 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindexby "See the npm package") - -This method is like `_.sortedLastIndex` except that it accepts `iteratee` -which is invoked for `value` and each element of `array` to compute their -sort ranking. The iteratee is invoked with one argument: *(value)*. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The sorted array to inspect. -2. `value` *(*)*: The value to evaluate. -3. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(number)*: Returns the index at which `value` should be inserted into `array`. - -#### Example -```js -var objects = [{ 'x': 4 }, { 'x': 5 }]; - -_.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); -// => 1 - -// The `_.property` iteratee shorthand. -_.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); -// => 1 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sortedlastindexofarray-value"></a>`_.sortedLastIndexOf(array, value)` -<a href="#_sortedlastindexofarray-value">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7363 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindexof "See the npm package") - -This method is like `_.lastIndexOf` except that it performs a binary -search on a sorted `array`. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to search. -2. `value` *(*)*: The value to search for. - -#### Returns -*(number)*: Returns the index of the matched value, else `-1`. - -#### Example -```js -_.sortedLastIndexOf([4, 5, 5, 5, 6], 5); -// => 3 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sorteduniqarray"></a>`_.sortedUniq(array)` -<a href="#_sorteduniqarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7389 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sorteduniq "See the npm package") - -This method is like `_.uniq` except that it's designed and optimized -for sorted arrays. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to inspect. - -#### Returns -*(Array)*: Returns the new duplicate free array. - -#### Example -```js -_.sortedUniq([1, 1, 2]); -// => [1, 2] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sorteduniqbyarray-iteratee"></a>`_.sortedUniqBy(array, [iteratee])` -<a href="#_sorteduniqbyarray-iteratee">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7411 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sorteduniqby "See the npm package") - -This method is like `_.uniqBy` except that it's designed and optimized -for sorted arrays. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to inspect. -2. `[iteratee]` *(Function)*: The iteratee invoked per element. - -#### Returns -*(Array)*: Returns the new duplicate free array. - -#### Example -```js -_.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); -// => [1.1, 2.3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_tailarray"></a>`_.tail(array)` -<a href="#_tailarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7431 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.tail "See the npm package") - -Gets all but the first element of `array`. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to query. - -#### Returns -*(Array)*: Returns the slice of `array`. - -#### Example -```js -_.tail([1, 2, 3]); -// => [2, 3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_takearray-n1"></a>`_.take(array, [n=1])` -<a href="#_takearray-n1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7460 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.take "See the npm package") - -Creates a slice of `array` with `n` elements taken from the beginning. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to query. -2. `[n=1]` *(number)*: The number of elements to take. - -#### Returns -*(Array)*: Returns the slice of `array`. - -#### Example -```js -_.take([1, 2, 3]); -// => [1] - -_.take([1, 2, 3], 2); -// => [1, 2] - -_.take([1, 2, 3], 5); -// => [1, 2, 3] - -_.take([1, 2, 3], 0); -// => [] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_takerightarray-n1"></a>`_.takeRight(array, [n=1])` -<a href="#_takerightarray-n1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7493 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.takeright "See the npm package") - -Creates a slice of `array` with `n` elements taken from the end. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The array to query. -2. `[n=1]` *(number)*: The number of elements to take. - -#### Returns -*(Array)*: Returns the slice of `array`. - -#### Example -```js -_.takeRight([1, 2, 3]); -// => [3] - -_.takeRight([1, 2, 3], 2); -// => [2, 3] - -_.takeRight([1, 2, 3], 5); -// => [1, 2, 3] - -_.takeRight([1, 2, 3], 0); -// => [] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_takerightwhilearray-predicate_identity"></a>`_.takeRightWhile(array, [predicate=_.identity])` -<a href="#_takerightwhilearray-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7539 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.takerightwhile "See the npm package") - -Creates a slice of `array` with elements taken from the end. Elements are -taken until `predicate` returns falsey. The predicate is invoked with -three arguments: *(value, index, array)*. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The array to query. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the slice of `array`. - -#### Example -```js -var users = [ - { 'user': 'barney', 'active': true }, - { 'user': 'fred', 'active': false }, - { 'user': 'pebbles', 'active': false } -]; - -_.takeRightWhile(users, function(o) { return !o.active; }); -// => objects for ['fred', 'pebbles'] - -// The `_.matches` iteratee shorthand. -_.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); -// => objects for ['pebbles'] - -// The `_.matchesProperty` iteratee shorthand. -_.takeRightWhile(users, ['active', false]); -// => objects for ['fred', 'pebbles'] - -// The `_.property` iteratee shorthand. -_.takeRightWhile(users, 'active'); -// => [] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_takewhilearray-predicate_identity"></a>`_.takeWhile(array, [predicate=_.identity])` -<a href="#_takewhilearray-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7581 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.takewhile "See the npm package") - -Creates a slice of `array` with elements taken from the beginning. Elements -are taken until `predicate` returns falsey. The predicate is invoked with -three arguments: *(value, index, array)*. - -#### Since -3.0.0 -#### Arguments -1. `array` *(Array)*: The array to query. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the slice of `array`. - -#### Example -```js -var users = [ - { 'user': 'barney', 'active': false }, - { 'user': 'fred', 'active': false}, - { 'user': 'pebbles', 'active': true } -]; - -_.takeWhile(users, function(o) { return !o.active; }); -// => objects for ['barney', 'fred'] - -// The `_.matches` iteratee shorthand. -_.takeWhile(users, { 'user': 'barney', 'active': false }); -// => objects for ['barney'] - -// The `_.matchesProperty` iteratee shorthand. -_.takeWhile(users, ['active', false]); -// => objects for ['barney', 'fred'] - -// The `_.property` iteratee shorthand. -_.takeWhile(users, 'active'); -// => [] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_unionarrays"></a>`_.union([arrays])` -<a href="#_unionarrays">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7603 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.union "See the npm package") - -Creates an array of unique values, in order, from all given arrays using -[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) -for equality comparisons. - -#### Since -0.1.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to inspect. - -#### Returns -*(Array)*: Returns the new array of combined values. - -#### Example -```js -_.union([2], [1, 2]); -// => [2, 1] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_unionbyarrays-iteratee_identity"></a>`_.unionBy([arrays], [iteratee=_.identity])` -<a href="#_unionbyarrays-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7630 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.unionby "See the npm package") - -This method is like `_.union` except that it accepts `iteratee` which is -invoked for each element of each `arrays` to generate the criterion by -which uniqueness is computed. The iteratee is invoked with one argument:<br> -*(value)*. - -#### Since -4.0.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to inspect. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(Array)*: Returns the new array of combined values. - -#### Example -```js -_.unionBy([2.1], [1.2, 2.3], Math.floor); -// => [2.1, 1.2] - -// The `_.property` iteratee shorthand. -_.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); -// => [{ 'x': 1 }, { 'x': 2 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_unionwitharrays-comparator"></a>`_.unionWith([arrays], [comparator])` -<a href="#_unionwitharrays-comparator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7658 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.unionwith "See the npm package") - -This method is like `_.union` except that it accepts `comparator` which -is invoked to compare elements of `arrays`. The comparator is invoked -with two arguments: *(arrVal, othVal)*. - -#### Since -4.0.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to inspect. -2. `[comparator]` *(Function)*: The comparator invoked per element. - -#### Returns -*(Array)*: Returns the new array of combined values. - -#### Example -```js -var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; -var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - -_.unionWith(objects, others, _.isEqual); -// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_uniqarray"></a>`_.uniq(array)` -<a href="#_uniqarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7683 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.uniq "See the npm package") - -Creates a duplicate-free version of an array, using -[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) -for equality comparisons, in which only the first occurrence of each -element is kept. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to inspect. - -#### Returns -*(Array)*: Returns the new duplicate free array. - -#### Example -```js -_.uniq([2, 1, 2]); -// => [2, 1] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_uniqbyarray-iteratee_identity"></a>`_.uniqBy(array, [iteratee=_.identity])` -<a href="#_uniqbyarray-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7711 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.uniqby "See the npm package") - -This method is like `_.uniq` except that it accepts `iteratee` which is -invoked for each element in `array` to generate the criterion by which -uniqueness is computed. The iteratee is invoked with one argument: *(value)*. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to inspect. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(Array)*: Returns the new duplicate free array. - -#### Example -```js -_.uniqBy([2.1, 1.2, 2.3], Math.floor); -// => [2.1, 1.2] - -// The `_.property` iteratee shorthand. -_.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); -// => [{ 'x': 1 }, { 'x': 2 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_uniqwitharray-comparator"></a>`_.uniqWith(array, [comparator])` -<a href="#_uniqwitharray-comparator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7736 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.uniqwith "See the npm package") - -This method is like `_.uniq` except that it accepts `comparator` which -is invoked to compare elements of `array`. The comparator is invoked with -two arguments: *(arrVal, othVal)*. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to inspect. -2. `[comparator]` *(Function)*: The comparator invoked per element. - -#### Returns -*(Array)*: Returns the new duplicate free array. - -#### Example -```js -var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; - -_.uniqWith(objects, _.isEqual); -// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_unziparray"></a>`_.unzip(array)` -<a href="#_unziparray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7761 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.unzip "See the npm package") - -This method is like `_.zip` except that it accepts an array of grouped -elements and creates an array regrouping the elements to their pre-zip -configuration. - -#### Since -1.2.0 -#### Arguments -1. `array` *(Array)*: The array of grouped elements to process. - -#### Returns -*(Array)*: Returns the new array of regrouped elements. - -#### Example -```js -var zipped = _.zip(['fred', 'barney'], [30, 40], [true, false]); -// => [['fred', 30, true], ['barney', 40, false]] - -_.unzip(zipped); -// => [['fred', 'barney'], [30, 40], [true, false]] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_unzipwitharray-iteratee_identity"></a>`_.unzipWith(array, [iteratee=_.identity])` -<a href="#_unzipwitharray-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7798 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.unzipwith "See the npm package") - -This method is like `_.unzip` except that it accepts `iteratee` to specify -how regrouped values should be combined. The iteratee is invoked with the -elements of each group: *(...group)*. - -#### Since -3.8.0 -#### Arguments -1. `array` *(Array)*: The array of grouped elements to process. -2. `[iteratee=_.identity]` *(Function)*: The function to combine regrouped values. - -#### Returns -*(Array)*: Returns the new array of regrouped elements. - -#### Example -```js -var zipped = _.zip([1, 2], [10, 20], [100, 200]); -// => [[1, 10, 100], [2, 20, 200]] - -_.unzipWith(zipped, _.add); -// => [3, 30, 300] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_withoutarray-values"></a>`_.without(array, [values])` -<a href="#_withoutarray-values">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7829 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.without "See the npm package") - -Creates an array excluding all given values using -[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) -for equality comparisons. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to inspect. -2. `[values]` *(...*)*: The values to exclude. - -#### Returns -*(Array)*: Returns the new array of filtered values. - -#### Example -```js -_.without([2, 1, 2, 3], 1, 2); -// => [3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_xorarrays"></a>`_.xor([arrays])` -<a href="#_xorarrays">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7853 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.xor "See the npm package") - -Creates an array of unique values that is the -[symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) -of the given arrays. The order of result values is determined by the order -they occur in the arrays. - -#### Since -2.4.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to inspect. - -#### Returns -*(Array)*: Returns the new array of filtered values. - -#### Example -```js -_.xor([2, 1], [2, 3]); -// => [1, 3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_xorbyarrays-iteratee_identity"></a>`_.xorBy([arrays], [iteratee=_.identity])` -<a href="#_xorbyarrays-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7880 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.xorby "See the npm package") - -This method is like `_.xor` except that it accepts `iteratee` which is -invoked for each element of each `arrays` to generate the criterion by -which by which they're compared. The iteratee is invoked with one argument:<br> -*(value)*. - -#### Since -4.0.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to inspect. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(Array)*: Returns the new array of filtered values. - -#### Example -```js -_.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); -// => [1.2, 3.4] - -// The `_.property` iteratee shorthand. -_.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); -// => [{ 'x': 2 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_xorwitharrays-comparator"></a>`_.xorWith([arrays], [comparator])` -<a href="#_xorwitharrays-comparator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7908 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.xorwith "See the npm package") - -This method is like `_.xor` except that it accepts `comparator` which is -invoked to compare elements of `arrays`. The comparator is invoked with -two arguments: *(arrVal, othVal)*. - -#### Since -4.0.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to inspect. -2. `[comparator]` *(Function)*: The comparator invoked per element. - -#### Returns -*(Array)*: Returns the new array of filtered values. - -#### Example -```js -var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; -var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - -_.xorWith(objects, others, _.isEqual); -// => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_ziparrays"></a>`_.zip([arrays])` -<a href="#_ziparrays">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7932 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.zip "See the npm package") - -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. - -#### Since -0.1.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to process. - -#### Returns -*(Array)*: Returns the new array of grouped elements. - -#### Example -```js -_.zip(['fred', 'barney'], [30, 40], [true, false]); -// => [['fred', 30, true], ['barney', 40, false]] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_zipobjectprops-values"></a>`_.zipObject([props=[]], [values=[]])` -<a href="#_zipobjectprops-values">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7950 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.zipobject "See the npm package") - -This method is like `_.fromPairs` except that it accepts two arrays, -one of property identifiers and one of corresponding values. - -#### Since -0.4.0 -#### Arguments -1. `[props=[]]` *(Array)*: The property identifiers. -2. `[values=[]]` *(Array)*: The property values. - -#### Returns -*(Object)*: Returns the new object. - -#### Example -```js -_.zipObject(['a', 'b'], [1, 2]); -// => { 'a': 1, 'b': 2 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_zipobjectdeepprops-values"></a>`_.zipObjectDeep([props=[]], [values=[]])` -<a href="#_zipobjectdeepprops-values">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7969 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.zipobjectdeep "See the npm package") - -This method is like `_.zipObject` except that it supports property paths. - -#### Since -4.1.0 -#### Arguments -1. `[props=[]]` *(Array)*: The property identifiers. -2. `[values=[]]` *(Array)*: The property values. - -#### Returns -*(Object)*: Returns the new object. - -#### Example -```js -_.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); -// => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_zipwitharrays-iteratee_identity"></a>`_.zipWith([arrays], [iteratee=_.identity])` -<a href="#_zipwitharrays-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L7992 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.zipwith "See the npm package") - -This method is like `_.zip` except that it accepts `iteratee` to specify -how grouped values should be combined. The iteratee is invoked with the -elements of each group: *(...group)*. - -#### Since -3.8.0 -#### Arguments -1. `[arrays]` *(...Array)*: The arrays to process. -2. `[iteratee=_.identity]` *(Function)*: The function to combine grouped values. - -#### Returns -*(Array)*: Returns the new array of grouped elements. - -#### Example -```js -_.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { - return a + b + c; -}); -// => [111, 222] -``` -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- div --> - -## `“Collection” Methods` - -<!-- div --> - -### <a id="_countbycollection-iteratee_identity"></a>`_.countBy(collection, [iteratee=_.identity])` -<a href="#_countbycollection-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8373 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.countby "See the npm package") - -Creates an object composed of keys generated from the results of running -each element of `collection` thru `iteratee`. The corresponding value of -each key is the number of times the key was returned by `iteratee`. The -iteratee is invoked with one argument: *(value)*. - -#### Since -0.5.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee to transform keys. - -#### Returns -*(Object)*: Returns the composed aggregate object. - -#### Example -```js -_.countBy([6.1, 4.2, 6.3], Math.floor); -// => { '4': 1, '6': 2 } - -// The `_.property` iteratee shorthand. -_.countBy(['one', 'two', 'three'], 'length'); -// => { '3': 2, '5': 1 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_everycollection-predicate_identity"></a>`_.every(collection, [predicate=_.identity])` -<a href="#_everycollection-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8414 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.every "See the npm package") - -Checks if `predicate` returns truthy for **all** elements of `collection`. -Iteration is stopped once `predicate` returns falsey. The predicate is -invoked with three arguments: *(value, index|key, collection)*. - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(boolean)*: Returns `true` if all elements pass the predicate check, else `false`. - -#### Example -```js -_.every([true, 1, null, 'yes'], Boolean); -// => false - -var users = [ - { 'user': 'barney', 'age': 36, 'active': false }, - { 'user': 'fred', 'age': 40, 'active': false } -]; - -// The `_.matches` iteratee shorthand. -_.every(users, { 'user': 'barney', 'active': false }); -// => false - -// The `_.matchesProperty` iteratee shorthand. -_.every(users, ['active', false]); -// => true - -// The `_.property` iteratee shorthand. -_.every(users, 'active'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_filtercollection-predicate_identity"></a>`_.filter(collection, [predicate=_.identity])` -<a href="#_filtercollection-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8458 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.filter "See the npm package") - -Iterates over elements of `collection`, returning an array of all elements -`predicate` returns truthy for. The predicate is invoked with three -arguments: *(value, index|key, collection)*. - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the new filtered array. - -#### Example -```js -var users = [ - { 'user': 'barney', 'age': 36, 'active': true }, - { 'user': 'fred', 'age': 40, 'active': false } -]; - -_.filter(users, function(o) { return !o.active; }); -// => objects for ['fred'] - -// The `_.matches` iteratee shorthand. -_.filter(users, { 'age': 36, 'active': true }); -// => objects for ['barney'] - -// The `_.matchesProperty` iteratee shorthand. -_.filter(users, ['active', false]); -// => objects for ['fred'] - -// The `_.property` iteratee shorthand. -_.filter(users, 'active'); -// => objects for ['barney'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_findcollection-predicate_identity-fromindex0"></a>`_.find(collection, [predicate=_.identity], [fromIndex=0])` -<a href="#_findcollection-predicate_identity-fromindex0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8500 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.find "See the npm package") - -Iterates over elements of `collection`, returning the first element -`predicate` returns truthy for. The predicate is invoked with three -arguments: *(value, index|key, collection)*. - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to search. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. -3. `[fromIndex=0]` *(number)*: The index to search from. - -#### Returns -*(*)*: Returns the matched element, else `undefined`. - -#### Example -```js -var users = [ - { 'user': 'barney', 'age': 36, 'active': true }, - { 'user': 'fred', 'age': 40, 'active': false }, - { 'user': 'pebbles', 'age': 1, 'active': true } -]; - -_.find(users, function(o) { return o.age < 40; }); -// => object for 'barney' - -// The `_.matches` iteratee shorthand. -_.find(users, { 'age': 1, 'active': true }); -// => object for 'pebbles' - -// The `_.matchesProperty` iteratee shorthand. -_.find(users, ['active', false]); -// => object for 'fred' - -// The `_.property` iteratee shorthand. -_.find(users, 'active'); -// => object for 'barney' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_findlastcollection-predicate_identity-fromindexcollectionlength-1"></a>`_.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1])` -<a href="#_findlastcollection-predicate_identity-fromindexcollectionlength-1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8522 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.findlast "See the npm package") - -This method is like `_.find` except that it iterates over elements of -`collection` from right to left. - -#### Since -2.0.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to search. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. -3. `[fromIndex=collection.length-1]` *(number)*: The index to search from. - -#### Returns -*(*)*: Returns the matched element, else `undefined`. - -#### Example -```js -_.findLast([1, 2, 3, 4], function(n) { - return n % 2 == 1; -}); -// => 3 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_flatmapcollection-iteratee_identity"></a>`_.flatMap(collection, [iteratee=_.identity])` -<a href="#_flatmapcollection-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8546 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.flatmap "See the npm package") - -Creates a flattened array of values by running each element in `collection` -thru `iteratee` and flattening the mapped results. The iteratee is invoked -with three arguments: *(value, index|key, collection)*. - -#### Since -4.0.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the new flattened array. - -#### Example -```js -function duplicate(n) { - return [n, n]; -} - -_.flatMap([1, 2], duplicate); -// => [1, 1, 2, 2] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_flatmapdeepcollection-iteratee_identity"></a>`_.flatMapDeep(collection, [iteratee=_.identity])` -<a href="#_flatmapdeepcollection-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8571 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.flatmapdeep "See the npm package") - -This method is like `_.flatMap` except that it recursively flattens the -mapped results. - -#### Since -4.7.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the new flattened array. - -#### Example -```js -function duplicate(n) { - return [[[n, n]]]; -} - -_.flatMapDeep([1, 2], duplicate); -// => [1, 1, 2, 2] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_flatmapdepthcollection-iteratee_identity-depth1"></a>`_.flatMapDepth(collection, [iteratee=_.identity], [depth=1])` -<a href="#_flatmapdepthcollection-iteratee_identity-depth1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8597 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.flatmapdepth "See the npm package") - -This method is like `_.flatMap` except that it recursively flattens the -mapped results up to `depth` times. - -#### Since -4.7.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. -3. `[depth=1]` *(number)*: The maximum recursion depth. - -#### Returns -*(Array)*: Returns the new flattened array. - -#### Example -```js -function duplicate(n) { - return [[[n, n]]]; -} - -_.flatMapDepth([1, 2], duplicate, 2); -// => [[1, 1], [2, 2]] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_foreachcollection-iteratee_identity"></a>`_.forEach(collection, [iteratee=_.identity])` -<a href="#_foreachcollection-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8632 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.foreach "See the npm package") - -Iterates over elements of `collection` and invokes `iteratee` for each element. -The iteratee is invoked with three arguments: *(value, index|key, collection)*. -Iteratee functions 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 use `_.forIn` -or `_.forOwn` for object iteration. - -#### Since -0.1.0 -#### Aliases -*_.each* - -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Function)*: The function invoked per iteration. - -#### Returns -*(*)*: Returns `collection`. - -#### Example -```js -_([1, 2]).forEach(function(value) { - console.log(value); -}); -// => Logs `1` then `2`. - -_.forEach({ 'a': 1, 'b': 2 }, function(value, key) { - console.log(key); -}); -// => Logs 'a' then 'b' (iteration order is not guaranteed). -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_foreachrightcollection-iteratee_identity"></a>`_.forEachRight(collection, [iteratee=_.identity])` -<a href="#_foreachrightcollection-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8657 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.foreachright "See the npm package") - -This method is like `_.forEach` except that it iterates over elements of -`collection` from right to left. - -#### Since -2.0.0 -#### Aliases -*_.eachRight* - -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Function)*: The function invoked per iteration. - -#### Returns -*(*)*: Returns `collection`. - -#### Example -```js -_.forEachRight([1, 2], function(value) { - console.log(value); -}); -// => Logs `2` then `1`. -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_groupbycollection-iteratee_identity"></a>`_.groupBy(collection, [iteratee=_.identity])` -<a href="#_groupbycollection-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8686 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.groupby "See the npm package") - -Creates an object composed of keys generated from the results of running -each element of `collection` thru `iteratee`. The order of grouped values -is determined by the order they occur in `collection`. The corresponding -value of each key is an array of elements responsible for generating the -key. The iteratee is invoked with one argument: *(value)*. - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee to transform keys. - -#### Returns -*(Object)*: Returns the composed aggregate object. - -#### Example -```js -_.groupBy([6.1, 4.2, 6.3], Math.floor); -// => { '4': [4.2], '6': [6.1, 6.3] } - -// The `_.property` iteratee shorthand. -_.groupBy(['one', 'two', 'three'], 'length'); -// => { '3': ['one', 'two'], '5': ['three'] } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_includescollection-value-fromindex0"></a>`_.includes(collection, value, [fromIndex=0])` -<a href="#_includescollection-value-fromindex0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8724 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.includes "See the npm package") - -Checks if `value` is in `collection`. If `collection` is a string, it's -checked for a substring of `value`, otherwise -[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) -is used for equality comparisons. If `fromIndex` is negative, it's used as -the offset from the end of `collection`. - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object|string)*: The collection to search. -2. `value` *(*)*: The value to search for. -3. `[fromIndex=0]` *(number)*: The index to search from. - -#### Returns -*(boolean)*: Returns `true` if `value` is found, else `false`. - -#### Example -```js -_.includes([1, 2, 3], 1); -// => true - -_.includes([1, 2, 3], 1, 2); -// => false - -_.includes({ 'user': 'fred', 'age': 40 }, 'fred'); -// => true - -_.includes('pebbles', 'eb'); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_invokemapcollection-path-args"></a>`_.invokeMap(collection, path, [args])` -<a href="#_invokemapcollection-path-args">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8760 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.invokemap "See the npm package") - -Invokes the method at `path` of each element in `collection`, returning -an array of the results of each invoked method. Any additional arguments -are provided to each invoked method. If `methodName` is a function, it's -invoked for and `this` bound to, each element in `collection`. - -#### Since -4.0.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `path` *(Array|Function|string)*: The path of the method to invoke or the function invoked per iteration. -3. `[args]` *(...*)*: The arguments to invoke each method with. - -#### Returns -*(Array)*: Returns the array of results. - -#### Example -```js -_.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); -// => [[1, 5, 7], [1, 2, 3]] - -_.invokeMap([123, 456], String.prototype.split, ''); -// => [['1', '2', '3'], ['4', '5', '6']] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_keybycollection-iteratee_identity"></a>`_.keyBy(collection, [iteratee=_.identity])` -<a href="#_keybycollection-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8802 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.keyby "See the npm package") - -Creates an object composed of keys generated from the results of running -each element of `collection` thru `iteratee`. The corresponding value of -each key is the last element responsible for generating the key. The -iteratee is invoked with one argument: *(value)*. - -#### Since -4.0.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee to transform keys. - -#### Returns -*(Object)*: Returns the composed aggregate object. - -#### Example -```js -var array = [ - { 'dir': 'left', 'code': 97 }, - { 'dir': 'right', 'code': 100 } -]; - -_.keyBy(array, function(o) { - return String.fromCharCode(o.code); -}); -// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - -_.keyBy(array, 'dir'); -// => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_mapcollection-iteratee_identity"></a>`_.map(collection, [iteratee=_.identity])` -<a href="#_mapcollection-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8849 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.map "See the npm package") - -Creates an array of values by running each element in `collection` thru -`iteratee`. The iteratee is invoked with three arguments:<br> -*(value, index|key, collection)*. -<br> -<br> -Many lodash methods are guarded to work as iteratees for methods like -`_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. -<br> -<br> -The guarded methods are:<br> -`ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, -`fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, -`sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, -`template`, `trim`, `trimEnd`, `trimStart`, and `words` - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the new mapped array. - -#### Example -```js -function square(n) { - return n * n; -} - -_.map([4, 8], square); -// => [16, 64] - -_.map({ 'a': 4, 'b': 8 }, square); -// => [16, 64] (iteration order is not guaranteed) - -var users = [ - { 'user': 'barney' }, - { 'user': 'fred' } -]; - -// The `_.property` iteratee shorthand. -_.map(users, 'user'); -// => ['barney', 'fred'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_orderbycollection-iteratees_identity-orders"></a>`_.orderBy(collection, [iteratees=[_.identity]], [orders])` -<a href="#_orderbycollection-iteratees_identity-orders">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8883 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.orderby "See the npm package") - -This method is like `_.sortBy` except that it allows specifying the sort -orders of the iteratees to sort by. If `orders` is unspecified, all values -are sorted in ascending order. Otherwise, specify an order of "desc" for -descending or "asc" for ascending sort order of corresponding values. - -#### Since -4.0.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratees=[_.identity]]` *(Array[]|Function[]|Object[]|string[])*: The iteratees to sort by. -3. `[orders]` *(string[])*: The sort orders of `iteratees`. - -#### Returns -*(Array)*: Returns the new sorted array. - -#### Example -```js -var users = [ - { 'user': 'fred', 'age': 48 }, - { 'user': 'barney', 'age': 34 }, - { 'user': 'fred', 'age': 40 }, - { 'user': 'barney', 'age': 36 } -]; - -// Sort by `user` in ascending order and by `age` in descending order. -_.orderBy(users, ['user', 'age'], ['asc', 'desc']); -// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_partitioncollection-predicate_identity"></a>`_.partition(collection, [predicate=_.identity])` -<a href="#_partitioncollection-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8934 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.partition "See the npm package") - -Creates an array of elements split into two groups, the first of which -contains elements `predicate` returns truthy for, the second of which -contains elements `predicate` returns falsey for. The predicate is -invoked with one argument: *(value)*. - -#### Since -3.0.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the array of grouped elements. - -#### Example -```js -var users = [ - { 'user': 'barney', 'age': 36, 'active': false }, - { 'user': 'fred', 'age': 40, 'active': true }, - { 'user': 'pebbles', 'age': 1, 'active': false } -]; - -_.partition(users, function(o) { return o.active; }); -// => objects for [['fred'], ['barney', 'pebbles']] - -// The `_.matches` iteratee shorthand. -_.partition(users, { 'age': 1, 'active': false }); -// => objects for [['pebbles'], ['barney', 'fred']] - -// The `_.matchesProperty` iteratee shorthand. -_.partition(users, ['active', false]); -// => objects for [['barney', 'pebbles'], ['fred']] - -// The `_.property` iteratee shorthand. -_.partition(users, 'active'); -// => objects for [['fred'], ['barney', 'pebbles']] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_reducecollection-iteratee_identity-accumulator"></a>`_.reduce(collection, [iteratee=_.identity], [accumulator])` -<a href="#_reducecollection-iteratee_identity-accumulator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8975 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.reduce "See the npm package") - -Reduces `collection` to a value which is the accumulated result of running -each element in `collection` thru `iteratee`, where each successive -invocation is supplied the return value of the previous. If `accumulator` -is not given, the first element of `collection` is used as the initial -value. The iteratee is invoked with four arguments:<br> -*(accumulator, value, index|key, collection)*. -<br> -<br> -Many lodash methods are guarded to work as iteratees for methods like -`_.reduce`, `_.reduceRight`, and `_.transform`. -<br> -<br> -The guarded methods are:<br> -`assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, -and `sortBy` - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Function)*: The function invoked per iteration. -3. `[accumulator]` *(*)*: The initial value. - -#### Returns -*(*)*: Returns the accumulated value. - -#### Example -```js -_.reduce([1, 2], function(sum, n) { - return sum + n; -}, 0); -// => 3 - -_.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - (result[value] || (result[value] = [])).push(key); - return result; -}, {}); -// => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_reducerightcollection-iteratee_identity-accumulator"></a>`_.reduceRight(collection, [iteratee=_.identity], [accumulator])` -<a href="#_reducerightcollection-iteratee_identity-accumulator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9004 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.reduceright "See the npm package") - -This method is like `_.reduce` except that it iterates over elements of -`collection` from right to left. - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratee=_.identity]` *(Function)*: The function invoked per iteration. -3. `[accumulator]` *(*)*: The initial value. - -#### Returns -*(*)*: Returns the accumulated value. - -#### Example -```js -var array = [[0, 1], [2, 3], [4, 5]]; - -_.reduceRight(array, function(flattened, other) { - return flattened.concat(other); -}, []); -// => [4, 5, 2, 3, 0, 1] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_rejectcollection-predicate_identity"></a>`_.reject(collection, [predicate=_.identity])` -<a href="#_rejectcollection-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9046 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.reject "See the npm package") - -The opposite of `_.filter`; this method returns the elements of `collection` -that `predicate` does **not** return truthy for. - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the new filtered array. - -#### Example -```js -var users = [ - { 'user': 'barney', 'age': 36, 'active': false }, - { 'user': 'fred', 'age': 40, 'active': true } -]; - -_.reject(users, function(o) { return !o.active; }); -// => objects for ['fred'] - -// The `_.matches` iteratee shorthand. -_.reject(users, { 'age': 40, 'active': true }); -// => objects for ['barney'] - -// The `_.matchesProperty` iteratee shorthand. -_.reject(users, ['active', false]); -// => objects for ['fred'] - -// The `_.property` iteratee shorthand. -_.reject(users, 'active'); -// => objects for ['barney'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_samplecollection"></a>`_.sample(collection)` -<a href="#_samplecollection">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9068 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sample "See the npm package") - -Gets a random element from `collection`. - -#### Since -2.0.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to sample. - -#### Returns -*(*)*: Returns the random element. - -#### Example -```js -_.sample([1, 2, 3, 4]); -// => 2 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_samplesizecollection-n1"></a>`_.sampleSize(collection, [n=1])` -<a href="#_samplesizecollection-n1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9095 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.samplesize "See the npm package") - -Gets `n` random elements at unique keys from `collection` up to the -size of `collection`. - -#### Since -4.0.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to sample. -2. `[n=1]` *(number)*: The number of elements to sample. - -#### Returns -*(Array)*: Returns the random elements. - -#### Example -```js -_.sampleSize([1, 2, 3], 2); -// => [3, 1] - -_.sampleSize([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/4.13.1/lodash.js#L9132 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.shuffle "See the npm package") - -Creates an array of shuffled values, using a version of the -[Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to shuffle. - -#### Returns -*(Array)*: Returns the new shuffled array. - -#### Example -```js -_.shuffle([1, 2, 3, 4]); -// => [4, 1, 3, 2] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sizecollection"></a>`_.size(collection)` -<a href="#_sizecollection">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9157 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.size "See the npm package") - -Gets the size of `collection` by returning its length for array-like -values or the number of own enumerable string keyed properties for objects. - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to inspect. - -#### Returns -*(number)*: Returns the collection size. - -#### Example -```js -_.size([1, 2, 3]); -// => 3 - -_.size({ 'a': 1, 'b': 2 }); -// => 2 - -_.size('pebbles'); -// => 7 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_somecollection-predicate_identity"></a>`_.some(collection, [predicate=_.identity])` -<a href="#_somecollection-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9211 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.some "See the npm package") - -Checks if `predicate` returns truthy for **any** element of `collection`. -Iteration is stopped once `predicate` returns truthy. The predicate is -invoked with three arguments: *(value, index|key, collection)*. - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(boolean)*: Returns `true` if any element passes the predicate check, else `false`. - -#### Example -```js -_.some([null, 0, 'yes', false], Boolean); -// => true - -var users = [ - { 'user': 'barney', 'active': true }, - { 'user': 'fred', 'active': false } -]; - -// The `_.matches` iteratee shorthand. -_.some(users, { 'user': 'barney', 'active': false }); -// => false - -// The `_.matchesProperty` iteratee shorthand. -_.some(users, ['active', false]); -// => true - -// The `_.property` iteratee shorthand. -_.some(users, 'active'); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sortbycollection-iteratees_identity"></a>`_.sortBy(collection, [iteratees=[_.identity]])` -<a href="#_sortbycollection-iteratees_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9253 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sortby "See the npm package") - -Creates an array of elements, sorted in ascending order by the results of -running each element in a collection thru each iteratee. This method -performs a stable sort, that is, it preserves the original sort order of -equal elements. The iteratees are invoked with one argument: *(value)*. - -#### Since -0.1.0 -#### Arguments -1. `collection` *(Array|Object)*: The collection to iterate over. -2. `[iteratees=[_.identity]]` *(...(Array|Array[]|Function|Function[]|Object|Object[]|string|string[]))*: The iteratees to sort by. - -#### Returns -*(Array)*: Returns the new sorted array. - -#### Example -```js -var users = [ - { 'user': 'fred', 'age': 48 }, - { 'user': 'barney', 'age': 36 }, - { 'user': 'fred', 'age': 40 }, - { 'user': 'barney', 'age': 34 } -]; - -_.sortBy(users, function(o) { return o.user; }); -// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] - -_.sortBy(users, ['user', 'age']); -// => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] - -_.sortBy(users, 'user', function(o) { - return Math.floor(o.age / 10); -}); -// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] -``` -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- div --> - -## `“Date” Methods` - -<!-- div --> - -### <a id="_now"></a>`_.now()` -<a href="#_now">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9288 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.now "See the npm package") - -Gets the timestamp of the number of milliseconds that have elapsed since -the Unix epoch *(1 January `1970 00`:00:00 UTC)*. - -#### Since -2.4.0 -#### Returns -*(number)*: Returns the timestamp. - -#### Example -```js -_.defer(function(stamp) { - console.log(_.now() - stamp); -}, _.now()); -// => Logs the number of milliseconds it took for the deferred invocation. -``` -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- div --> - -## `“Function” Methods` - -<!-- div --> - -### <a id="_aftern-func"></a>`_.after(n, func)` -<a href="#_aftern-func">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9318 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.after "See the npm package") - -The opposite of `_.before`; this method creates a function that invokes -`func` once it's called `n` or more times. - -#### Since -0.1.0 -#### Arguments -1. `n` *(number)*: The number of calls before `func` is invoked. -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 the two async saves have completed. -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_aryfunc-nfunclength"></a>`_.ary(func, [n=func.length])` -<a href="#_aryfunc-nfunclength">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9347 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.ary "See the npm package") - -Creates a function that invokes `func`, with up to `n` arguments, -ignoring any additional arguments. - -#### Since -3.0.0 -#### Arguments -1. `func` *(Function)*: The function to cap arguments for. -2. `[n=func.length]` *(number)*: The arity cap. - -#### Returns -*(Function)*: Returns the new capped function. - -#### Example -```js -_.map(['6', '8', '10'], _.ary(parseInt, 1)); -// => [6, 8, 10] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_beforen-func"></a>`_.before(n, func)` -<a href="#_beforen-func">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9370 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.before "See the npm package") - -Creates a function that invokes `func`, with the `this` binding and arguments -of the created function, while it's called less than `n` times. Subsequent -calls to the created function return the result of the last `func` invocation. - -#### Since -3.0.0 -#### Arguments -1. `n` *(number)*: The number of calls at which `func` is no longer invoked. -2. `func` *(Function)*: The function to restrict. - -#### Returns -*(Function)*: Returns the new restricted function. - -#### Example -```js -jQuery(element).on('click', _.before(5, addContactToList)); -// => allows adding up to 4 contacts to the list -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_bindfunc-thisarg-partials"></a>`_.bind(func, thisArg, [partials])` -<a href="#_bindfunc-thisarg-partials">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9422 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.bind "See the npm package") - -Creates a function that invokes `func` with the `this` binding of `thisArg` -and `partials` prepended to the arguments it receives. -<br> -<br> -The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, -may be used as a placeholder for partially applied arguments. -<br> -<br> -**Note:** Unlike native `Function#bind`, this method doesn't set the "length" -property of bound functions. - -#### Since -0.1.0 -#### Arguments -1. `func` *(Function)*: The function to bind. -2. `thisArg` *(*)*: The `this` binding of `func`. -3. `[partials]` *(...*)*: The arguments to be partially applied. - -#### Returns -*(Function)*: Returns the new bound function. - -#### Example -```js -var greet = function(greeting, punctuation) { - return greeting + ' ' + this.user + punctuation; -}; - -var object = { 'user': 'fred' }; - -var bound = _.bind(greet, object, 'hi'); -bound('!'); -// => 'hi fred!' - -// Bound with placeholders. -var bound = _.bind(greet, object, _, '!'); -bound('hi'); -// => 'hi fred!' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_bindkeyobject-key-partials"></a>`_.bindKey(object, key, [partials])` -<a href="#_bindkeyobject-key-partials">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9476 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.bindkey "See the npm package") - -Creates a function that invokes the method at `object[key]` with `partials` -prepended to the arguments it receives. -<br> -<br> -This method differs from `_.bind` by allowing bound functions to reference -methods that may be redefined or don't yet exist. See -[Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) -for more details. -<br> -<br> -The `_.bindKey.placeholder` value, which defaults to `_` in monolithic -builds, may be used as a placeholder for partially applied arguments. - -#### Since -0.10.0 -#### Arguments -1. `object` *(Object)*: The object to invoke the method on. -2. `key` *(string)*: The key of the method. -3. `[partials]` *(...*)*: The arguments to be partially applied. - -#### Returns -*(Function)*: Returns the new bound function. - -#### Example -```js -var object = { - 'user': 'fred', - 'greet': function(greeting, punctuation) { - return greeting + ' ' + this.user + punctuation; - } -}; - -var bound = _.bindKey(object, 'greet', 'hi'); -bound('!'); -// => 'hi fred!' - -object.greet = function(greeting, punctuation) { - return greeting + 'ya ' + this.user + punctuation; -}; - -bound('!'); -// => 'hiya fred!' - -// Bound with placeholders. -var bound = _.bindKey(object, 'greet', _, '!'); -bound('hi'); -// => 'hiya fred!' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_curryfunc-arityfunclength"></a>`_.curry(func, [arity=func.length])` -<a href="#_curryfunc-arityfunclength">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9526 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.curry "See the npm package") - -Creates a function that accepts arguments of `func` and either invokes -`func` returning its result, if at least `arity` number of arguments have -been provided, or returns a function that accepts the remaining `func` -arguments, and so on. The arity of `func` may be specified if `func.length` -is not sufficient. -<br> -<br> -The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, -may be used as a placeholder for provided arguments. -<br> -<br> -**Note:** This method doesn't set the "length" property of curried functions. - -#### Since -2.0.0 -#### 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 abc = function(a, b, c) { - return [a, b, c]; -}; - -var curried = _.curry(abc); - -curried(1)(2)(3); -// => [1, 2, 3] - -curried(1, 2)(3); -// => [1, 2, 3] - -curried(1, 2, 3); -// => [1, 2, 3] - -// Curried with placeholders. -curried(1)(_, 3)(2); -// => [1, 2, 3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_curryrightfunc-arityfunclength"></a>`_.curryRight(func, [arity=func.length])` -<a href="#_curryrightfunc-arityfunclength">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9571 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.curryright "See the npm package") - -This method is like `_.curry` except that arguments are applied to `func` -in the manner of `_.partialRight` instead of `_.partial`. -<br> -<br> -The `_.curryRight.placeholder` value, which defaults to `_` in monolithic -builds, may be used as a placeholder for provided arguments. -<br> -<br> -**Note:** This method doesn't set the "length" property of curried functions. - -#### Since -3.0.0 -#### 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 abc = function(a, b, c) { - return [a, b, c]; -}; - -var curried = _.curryRight(abc); - -curried(3)(2)(1); -// => [1, 2, 3] - -curried(2, 3)(1); -// => [1, 2, 3] - -curried(1, 2, 3); -// => [1, 2, 3] - -// Curried with placeholders. -curried(3)(1, _)(2); -// => [1, 2, 3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_debouncefunc-wait0-options-optionsleadingfalse-optionsmaxwait-optionstrailingtrue"></a>`_.debounce(func, [wait=0], [options={}], [options.leading=false], [options.maxWait], [options.trailing=true])` -<a href="#_debouncefunc-wait0-options-optionsleadingfalse-optionsmaxwait-optionstrailingtrue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9628 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.debounce "See the npm package") - -Creates a debounced function that delays invoking `func` until after `wait` -milliseconds have elapsed since the last time the debounced function was -invoked. The debounced function comes with a `cancel` method to cancel -delayed `func` invocations and a `flush` method to immediately invoke them. -Provide an options object to indicate whether `func` should be invoked on -the leading and/or trailing edge of the `wait` timeout. The `func` is invoked -with the last arguments provided to the debounced function. Subsequent calls -to the debounced function return the result of the last `func` invocation. -<br> -<br> -**Note:** If `leading` and `trailing` options are `true`, `func` is invoked -on the trailing edge of the timeout only if the debounced function is -invoked more than once during the `wait` timeout. -<br> -<br> -See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) -for details over the differences between `_.debounce` and `_.throttle`. - -#### Since -0.1.0 -#### Arguments -1. `func` *(Function)*: The function to debounce. -2. `[wait=0]` *(number)*: The number of milliseconds to delay. -3. `[options={}]` *(Object)*: The options object. -4. `[options.leading=false]` *(boolean)*: Specify invoking on the leading edge of the timeout. -5. `[options.maxWait]` *(number)*: The maximum time `func` is allowed to be delayed before it's invoked. -6. `[options.trailing=true]` *(boolean)*: Specify invoking 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. -jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - -// Invoke `sendMail` when clicked, debouncing subsequent calls. -jQuery(element).on('click', _.debounce(sendMail, 300, { - 'leading': true, - 'trailing': false -})); - -// Ensure `batchLog` is invoked once after 1 second of debounced calls. -var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); -var source = new EventSource('/stream'); -jQuery(source).on('message', debounced); - -// Cancel the trailing debounced invocation. -jQuery(window).on('popstate', debounced.cancel); -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_deferfunc-args"></a>`_.defer(func, [args])` -<a href="#_deferfunc-args">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9765 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.defer "See the npm package") - -Defers invoking the `func` until the current call stack has cleared. Any -additional arguments are provided to `func` when it's invoked. - -#### Since -0.1.0 -#### Arguments -1. `func` *(Function)*: The function to defer. -2. `[args]` *(...*)*: The arguments to invoke `func` 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-args"></a>`_.delay(func, wait, [args])` -<a href="#_delayfunc-wait-args">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9788 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.delay "See the npm package") - -Invokes `func` after `wait` milliseconds. Any additional arguments are -provided to `func` when it's invoked. - -#### Since -0.1.0 -#### Arguments -1. `func` *(Function)*: The function to delay. -2. `wait` *(number)*: The number of milliseconds to delay invocation. -3. `[args]` *(...*)*: The arguments to invoke `func` 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="_flipfunc"></a>`_.flip(func)` -<a href="#_flipfunc">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9810 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.flip "See the npm package") - -Creates a function that invokes `func` with arguments reversed. - -#### Since -4.0.0 -#### Arguments -1. `func` *(Function)*: The function to flip arguments for. - -#### Returns -*(Function)*: Returns the new flipped function. - -#### Example -```js -var flipped = _.flip(function() { - return _.toArray(arguments); -}); - -flipped('a', 'b', 'c', 'd'); -// => ['d', 'c', 'b', 'a'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_memoizefunc-resolver"></a>`_.memoize(func, [resolver])` -<a href="#_memoizefunc-resolver">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9858 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.memoize "See the npm package") - -Creates a function that memoizes the result of `func`. If `resolver` is -provided, it determines 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 map cache key. The `func` -is invoked with the `this` binding of the memoized function. -<br> -<br> -**Note:** The cache is exposed as the `cache` property on the memoized -function. Its creation may be customized by replacing the `_.memoize.Cache` -constructor with one whose instances implement the -[`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object) -method interface of `delete`, `get`, `has`, and `set`. - -#### Since -0.1.0 -#### Arguments -1. `func` *(Function)*: The function to have its output memoized. -2. `[resolver]` *(Function)*: The function to resolve the cache key. - -#### Returns -*(Function)*: Returns the new memoized function. - -#### Example -```js -var object = { 'a': 1, 'b': 2 }; -var other = { 'c': 3, 'd': 4 }; - -var values = _.memoize(_.values); -values(object); -// => [1, 2] - -values(other); -// => [3, 4] - -object.a = 2; -values(object); -// => [1, 2] - -// Modify the result cache. -values.cache.set(object, ['a', 'b']); -values(object); -// => ['a', 'b'] - -// Replace `_.memoize.Cache`. -_.memoize.Cache = WeakMap; -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_negatepredicate"></a>`_.negate(predicate)` -<a href="#_negatepredicate">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9901 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.negate "See the npm package") - -Creates a function that negates the result of the predicate `func`. The -`func` predicate is invoked with the `this` binding and arguments of the -created function. - -#### Since -3.0.0 -#### Arguments -1. `predicate` *(Function)*: The predicate to negate. - -#### Returns -*(Function)*: Returns the new negated function. - -#### Example -```js -function isEven(n) { - return n % 2 == 0; -} - -_.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); -// => [1, 3, 5] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_oncefunc"></a>`_.once(func)` -<a href="#_oncefunc">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9928 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.once "See the npm package") - -Creates a function that is restricted to invoking `func` once. Repeat calls -to the function return the value of the first invocation. The `func` is -invoked with the `this` binding and arguments of the created function. - -#### Since -0.1.0 -#### Arguments -1. `func` *(Function)*: The function to restrict. - -#### Returns -*(Function)*: Returns the new restricted function. - -#### Example -```js -var initialize = _.once(createApplication); -initialize(); -initialize(); -// `initialize` invokes `createApplication` once -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_overargsfunc"></a>`_.overArgs(func)` -<a href="#_overargsfunc">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L9964 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.overargs "See the npm package") - -Creates a function that invokes `func` with arguments transformed by -corresponding `transforms`. - -#### Since -4.0.0 -#### Arguments -1. `func` *(Function)*: The function to wrap. - -#### Returns -*(Function)*: Returns the new function. - -#### Example -```js -function doubled(n) { - return n * 2; -} - -function square(n) { - return n * n; -} - -var func = _.overArgs(function(x, y) { - return [x, y]; -}, [square, doubled]); - -func(9, 3); -// => [81, 6] - -func(10, 5); -// => [100, 10] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_partialfunc-partials"></a>`_.partial(func, [partials])` -<a href="#_partialfunc-partials">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10014 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.partial "See the npm package") - -Creates a function that invokes `func` with `partials` prepended to the -arguments it receives. This method is like `_.bind` except it does **not** -alter the `this` binding. -<br> -<br> -The `_.partial.placeholder` value, which defaults to `_` in monolithic -builds, may be used as a placeholder for partially applied arguments. -<br> -<br> -**Note:** This method doesn't set the "length" property of partially -applied functions. - -#### Since -0.2.0 -#### Arguments -1. `func` *(Function)*: The function to partially apply arguments to. -2. `[partials]` *(...*)*: The arguments to be partially applied. - -#### Returns -*(Function)*: Returns the new partially applied function. - -#### Example -```js -var greet = function(greeting, name) { - return greeting + ' ' + name; -}; - -var sayHelloTo = _.partial(greet, 'hello'); -sayHelloTo('fred'); -// => 'hello fred' - -// Partially applied with placeholders. -var greetFred = _.partial(greet, _, 'fred'); -greetFred('hi'); -// => 'hi fred' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_partialrightfunc-partials"></a>`_.partialRight(func, [partials])` -<a href="#_partialrightfunc-partials">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10051 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.partialright "See the npm package") - -This method is like `_.partial` except that partially applied arguments -are appended to the arguments it receives. -<br> -<br> -The `_.partialRight.placeholder` value, which defaults to `_` in monolithic -builds, may be used as a placeholder for partially applied arguments. -<br> -<br> -**Note:** This method doesn't set the "length" property of partially -applied functions. - -#### Since -1.0.0 -#### Arguments -1. `func` *(Function)*: The function to partially apply arguments to. -2. `[partials]` *(...*)*: The arguments to be partially applied. - -#### Returns -*(Function)*: Returns the new partially applied function. - -#### Example -```js -var greet = function(greeting, name) { - return greeting + ' ' + name; -}; - -var greetFred = _.partialRight(greet, 'fred'); -greetFred('hi'); -// => 'hi fred' - -// Partially applied with placeholders. -var sayHelloTo = _.partialRight(greet, 'hello', _); -sayHelloTo('fred'); -// => 'hello fred' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_reargfunc-indexes"></a>`_.rearg(func, indexes)` -<a href="#_reargfunc-indexes">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10078 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.rearg "See the npm package") - -Creates a function that invokes `func` with arguments arranged according -to the specified `indexes` where the argument value at the first index is -provided as the first argument, the argument value at the second index is -provided as the second argument, and so on. - -#### Since -3.0.0 -#### Arguments -1. `func` *(Function)*: The function to rearrange arguments for. -2. `indexes` *(...(number|number[]))*: The arranged argument indexes. - -#### Returns -*(Function)*: Returns the new function. - -#### Example -```js -var rearged = _.rearg(function(a, b, c) { - return [a, b, c]; -}, [2, 0, 1]); - -rearged('b', 'c', 'a') -// => ['a', 'b', 'c'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_restfunc-startfunclength-1"></a>`_.rest(func, [start=func.length-1])` -<a href="#_restfunc-startfunclength-1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10107 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.rest "See the npm package") - -Creates a function that invokes `func` with the `this` binding of the -created function and arguments from `start` and beyond provided as -an array. -<br> -<br> -**Note:** This method is based on the -[rest parameter](https://mdn.io/rest_parameters). - -#### Since -4.0.0 -#### Arguments -1. `func` *(Function)*: The function to apply a rest parameter to. -2. `[start=func.length-1]` *(number)*: The start position of the rest parameter. - -#### Returns -*(Function)*: Returns the new function. - -#### Example -```js -var say = _.rest(function(what, names) { - return what + ' ' + _.initial(names).join(', ') + - (_.size(names) > 1 ? ', & ' : '') + _.last(names); -}); - -say('hello', 'fred', 'barney', 'pebbles'); -// => 'hello fred, barney, & pebbles' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_spreadfunc-start0"></a>`_.spread(func, [start=0])` -<a href="#_spreadfunc-start0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10170 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.spread "See the npm package") - -Creates a function that invokes `func` with the `this` binding of the -create function and an array of arguments much like -[`Function#apply`](http://www.ecma-international.org/ecma-262/6.0/#sec-function.prototype.apply). -<br> -<br> -**Note:** This method is based on the -[spread operator](https://mdn.io/spread_operator). - -#### Since -3.2.0 -#### Arguments -1. `func` *(Function)*: The function to spread arguments over. -2. `[start=0]` *(number)*: The start position of the spread. - -#### Returns -*(Function)*: Returns the new function. - -#### Example -```js -var say = _.spread(function(who, what) { - return who + ' says ' + what; -}); - -say(['fred', 'hello']); -// => 'fred says hello' - -var numbers = Promise.all([ - Promise.resolve(40), - Promise.resolve(36) -]); - -numbers.then(_.spread(function(x, y) { - return x + y; -})); -// => a Promise of 76 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_throttlefunc-wait0-options-optionsleadingtrue-optionstrailingtrue"></a>`_.throttle(func, [wait=0], [options={}], [options.leading=true], [options.trailing=true])` -<a href="#_throttlefunc-wait0-options-optionsleadingtrue-optionstrailingtrue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10227 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.throttle "See the npm package") - -Creates a throttled function that only invokes `func` at most once per -every `wait` milliseconds. The throttled function comes with a `cancel` -method to cancel delayed `func` invocations and a `flush` method to -immediately invoke them. Provide an options object to indicate whether -`func` should be invoked on the leading and/or trailing edge of the `wait` -timeout. The `func` is invoked with the last arguments provided to the -throttled function. Subsequent calls to the throttled function return the -result of the last `func` invocation. -<br> -<br> -**Note:** If `leading` and `trailing` options are `true`, `func` is -invoked on the trailing edge of the timeout only if the throttled function -is invoked more than once during the `wait` timeout. -<br> -<br> -See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) -for details over the differences between `_.throttle` and `_.debounce`. - -#### Since -0.1.0 -#### Arguments -1. `func` *(Function)*: The function to throttle. -2. `[wait=0]` *(number)*: The number of milliseconds to throttle invocations to. -3. `[options={}]` *(Object)*: The options object. -4. `[options.leading=true]` *(boolean)*: Specify invoking on the leading edge of the timeout. -5. `[options.trailing=true]` *(boolean)*: Specify invoking on the trailing edge of the timeout. - -#### Returns -*(Function)*: Returns the new throttled function. - -#### Example -```js -// Avoid excessively updating the position while scrolling. -jQuery(window).on('scroll', _.throttle(updatePosition, 100)); - -// Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. -var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); -jQuery(element).on('click', throttled); - -// Cancel the trailing throttled invocation. -jQuery(window).on('popstate', throttled.cancel); -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_unaryfunc"></a>`_.unary(func)` -<a href="#_unaryfunc">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10260 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.unary "See the npm package") - -Creates a function that accepts up to one argument, ignoring any -additional arguments. - -#### Since -4.0.0 -#### Arguments -1. `func` *(Function)*: The function to cap arguments for. - -#### Returns -*(Function)*: Returns the new capped function. - -#### Example -```js -_.map(['6', '8', '10'], _.unary(parseInt)); -// => [6, 8, 10] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_wrapvalue-wrapperidentity"></a>`_.wrap(value, [wrapper=identity])` -<a href="#_wrapvalue-wrapperidentity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10286 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.wrap "See the npm package") - -Creates a function that provides `value` to the wrapper function as its -first argument. Any additional arguments provided to the function are -appended to those provided to the wrapper function. The wrapper is invoked -with the `this` binding of the created function. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to wrap. -2. `[wrapper=identity]` *(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, barney, & pebbles'); -// => '<p>fred, barney, & pebbles</p>' -``` -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- div --> - -## `“Lang” Methods` - -<!-- div --> - -### <a id="_castarrayvalue"></a>`_.castArray(value)` -<a href="#_castarrayvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10326 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.castarray "See the npm package") - -Casts `value` as an array if it's not one. - -#### Since -4.4.0 -#### Arguments -1. `value` *(*)*: The value to inspect. - -#### Returns -*(Array)*: Returns the cast array. - -#### Example -```js -_.castArray(1); -// => [1] - -_.castArray({ 'a': 1 }); -// => [{ 'a': 1 }] - -_.castArray('abc'); -// => ['abc'] - -_.castArray(null); -// => [null] - -_.castArray(undefined); -// => [undefined] - -_.castArray(); -// => [] - -var array = [1, 2, 3]; -console.log(_.castArray(array) === array); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_clonevalue"></a>`_.clone(value)` -<a href="#_clonevalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10360 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.clone "See the npm package") - -Creates a shallow clone of `value`. -<br> -<br> -**Note:** This method is loosely based on the -[structured clone algorithm](https://mdn.io/Structured_clone_algorithm) -and supports cloning arrays, array buffers, booleans, date objects, maps, -numbers, `Object` objects, regexes, sets, strings, symbols, and typed -arrays. The own enumerable properties of `arguments` objects are cloned -as plain objects. An empty object is returned for uncloneable values such -as error objects, functions, DOM nodes, and WeakMaps. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to clone. - -#### Returns -*(*)*: Returns the cloned value. - -#### Example -```js -var objects = [{ 'a': 1 }, { 'b': 2 }]; - -var shallow = _.clone(objects); -console.log(shallow[0] === objects[0]); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_clonedeepvalue"></a>`_.cloneDeep(value)` -<a href="#_clonedeepvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10417 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.clonedeep "See the npm package") - -This method is like `_.clone` except that it recursively clones `value`. - -#### Since -1.0.0 -#### Arguments -1. `value` *(*)*: The value to recursively clone. - -#### Returns -*(*)*: Returns the deep cloned value. - -#### Example -```js -var objects = [{ 'a': 1 }, { 'b': 2 }]; - -var deep = _.cloneDeep(objects); -console.log(deep[0] === objects[0]); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_clonedeepwithvalue-customizer"></a>`_.cloneDeepWith(value, [customizer])` -<a href="#_clonedeepwithvalue-customizer">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10449 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.clonedeepwith "See the npm package") - -This method is like `_.cloneWith` except that it recursively clones `value`. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to recursively clone. -2. `[customizer]` *(Function)*: The function to customize cloning. - -#### Returns -*(*)*: Returns the deep cloned value. - -#### Example -```js -function customizer(value) { - if (_.isElement(value)) { - return value.cloneNode(true); - } -} - -var el = _.cloneDeepWith(document.body, customizer); - -console.log(el === document.body); -// => false -console.log(el.nodeName); -// => 'BODY' -console.log(el.childNodes.length); -// => 20 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_clonewithvalue-customizer"></a>`_.cloneWith(value, [customizer])` -<a href="#_clonewithvalue-customizer">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10395 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.clonewith "See the npm package") - -This method is like `_.clone` except that it accepts `customizer` which -is invoked to produce the cloned value. If `customizer` returns `undefined`, -cloning is handled by the method instead. The `customizer` is invoked with -up to four arguments; *(value [, index|key, object, stack])*. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to clone. -2. `[customizer]` *(Function)*: The function to customize cloning. - -#### Returns -*(*)*: Returns the cloned value. - -#### Example -```js -function customizer(value) { - if (_.isElement(value)) { - return value.cloneNode(false); - } -} - -var el = _.cloneWith(document.body, customizer); - -console.log(el === document.body); -// => false -console.log(el.nodeName); -// => 'BODY' -console.log(el.childNodes.length); -// => 0 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_eqvalue-other"></a>`_.eq(value, other)` -<a href="#_eqvalue-other">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10485 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.eq "See the npm package") - -Performs a -[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) -comparison between two values to determine if they are equivalent. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to compare. -2. `other` *(*)*: The other value to compare. - -#### Returns -*(boolean)*: Returns `true` if the values are equivalent, else `false`. - -#### Example -```js -var object = { 'user': 'fred' }; -var other = { 'user': 'fred' }; - -_.eq(object, object); -// => true - -_.eq(object, other); -// => false - -_.eq('a', 'a'); -// => true - -_.eq('a', Object('a')); -// => false - -_.eq(NaN, NaN); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_gtvalue-other"></a>`_.gt(value, other)` -<a href="#_gtvalue-other">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10512 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.gt "See the npm package") - -Checks if `value` is greater than `other`. - -#### Since -3.9.0 -#### Arguments -1. `value` *(*)*: The value to compare. -2. `other` *(*)*: The other value to compare. - -#### Returns -*(boolean)*: Returns `true` if `value` is greater than `other`, else `false`. - -#### Example -```js -_.gt(3, 1); -// => true - -_.gt(3, 3); -// => false - -_.gt(1, 3); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_gtevalue-other"></a>`_.gte(value, other)` -<a href="#_gtevalue-other">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10537 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.gte "See the npm package") - -Checks if `value` is greater than or equal to `other`. - -#### Since -3.9.0 -#### Arguments -1. `value` *(*)*: The value to compare. -2. `other` *(*)*: The other value to compare. - -#### Returns -*(boolean)*: Returns `true` if `value` is greater than or equal to `other`, else `false`. - -#### Example -```js -_.gte(3, 1); -// => true - -_.gte(3, 3); -// => true - -_.gte(1, 3); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isargumentsvalue"></a>`_.isArguments(value)` -<a href="#_isargumentsvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10559 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isarguments "See the npm package") - -Checks if `value` is likely an `arguments` object. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isArguments(function() { return arguments; }()); -// => true - -_.isArguments([1, 2, 3]); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isarrayvalue"></a>`_.isArray(value)` -<a href="#_isarrayvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10590 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isarray "See the npm package") - -Checks if `value` is classified as an `Array` object. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isArray([1, 2, 3]); -// => true - -_.isArray(document.body.children); -// => false - -_.isArray('abc'); -// => false - -_.isArray(_.noop); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isarraybuffervalue"></a>`_.isArrayBuffer(value)` -<a href="#_isarraybuffervalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10610 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isarraybuffer "See the npm package") - -Checks if `value` is classified as an `ArrayBuffer` object. - -#### Since -4.3.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isArrayBuffer(new ArrayBuffer(2)); -// => true - -_.isArrayBuffer(new Array(2)); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isarraylikevalue"></a>`_.isArrayLike(value)` -<a href="#_isarraylikevalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10639 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isarraylike "See the npm package") - -Checks if `value` is array-like. A value is considered array-like if it's -not a function and has a `value.length` that's an integer greater than or -equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is array-like, else `false`. - -#### Example -```js -_.isArrayLike([1, 2, 3]); -// => true - -_.isArrayLike(document.body.children); -// => true - -_.isArrayLike('abc'); -// => true - -_.isArrayLike(_.noop); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isarraylikeobjectvalue"></a>`_.isArrayLikeObject(value)` -<a href="#_isarraylikeobjectvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10668 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isarraylikeobject "See the npm package") - -This method is like `_.isArrayLike` except that it also checks if `value` -is an object. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is an array-like object, else `false`. - -#### Example -```js -_.isArrayLikeObject([1, 2, 3]); -// => true - -_.isArrayLikeObject(document.body.children); -// => true - -_.isArrayLikeObject('abc'); -// => false - -_.isArrayLikeObject(_.noop); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isbooleanvalue"></a>`_.isBoolean(value)` -<a href="#_isbooleanvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10690 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isboolean "See the npm package") - -Checks if `value` is classified as a boolean primitive or object. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isBoolean(false); -// => true - -_.isBoolean(null); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isbuffervalue"></a>`_.isBuffer(value)` -<a href="#_isbuffervalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10712 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isbuffer "See the npm package") - -Checks if `value` is a buffer. - -#### Since -4.3.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is a buffer, else `false`. - -#### Example -```js -_.isBuffer(new Buffer(2)); -// => true - -_.isBuffer(new Uint8Array(2)); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isdatevalue"></a>`_.isDate(value)` -<a href="#_isdatevalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10734 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isdate "See the npm package") - -Checks if `value` is classified as a `Date` object. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isDate(new Date); -// => true - -_.isDate('Mon April 23 2012'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_iselementvalue"></a>`_.isElement(value)` -<a href="#_iselementvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10756 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.iselement "See the npm package") - -Checks if `value` is likely a DOM element. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is a DOM element, else `false`. - -#### Example -```js -_.isElement(document.body); -// => true - -_.isElement('<body>'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isemptyvalue"></a>`_.isEmpty(value)` -<a href="#_isemptyvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10793 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isempty "See the npm package") - -Checks if `value` is an empty object, collection, map, or set. -<br> -<br> -Objects are considered empty if they have no own enumerable string keyed -properties. -<br> -<br> -Array-like values such as `arguments` objects, arrays, buffers, strings, or -jQuery-like collections are considered empty if they have a `length` of `0`. -Similarly, maps and sets are considered empty if they have a `size` of `0`. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is empty, else `false`. - -#### Example -```js -_.isEmpty(null); -// => true - -_.isEmpty(true); -// => true - -_.isEmpty(1); -// => true - -_.isEmpty([1, 2, 3]); -// => false - -_.isEmpty({ 'a': 1 }); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isequalvalue-other"></a>`_.isEqual(value, other)` -<a href="#_isequalvalue-other">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10842 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isequal "See the npm package") - -Performs a deep comparison between two values to determine if they are -equivalent. -<br> -<br> -**Note:** This method supports comparing arrays, array buffers, booleans, -date objects, error objects, maps, numbers, `Object` objects, regexes, -sets, strings, symbols, and typed arrays. `Object` objects are compared -by their own, not inherited, enumerable properties. Functions and DOM -nodes are **not** supported. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to compare. -2. `other` *(*)*: The other value to compare. - -#### Returns -*(boolean)*: Returns `true` if the values are equivalent, else `false`. - -#### Example -```js -var object = { 'user': 'fred' }; -var other = { 'user': 'fred' }; - -_.isEqual(object, other); -// => true - -object === other; -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isequalwithvalue-other-customizer"></a>`_.isEqualWith(value, other, [customizer])` -<a href="#_isequalwithvalue-other-customizer">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10879 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isequalwith "See the npm package") - -This method is like `_.isEqual` except that it accepts `customizer` which -is invoked to compare values. If `customizer` returns `undefined`, comparisons -are handled by the method instead. The `customizer` is invoked with up to -six arguments: *(objValue, othValue [, index|key, object, other, stack])*. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to compare. -2. `other` *(*)*: The other value to compare. -3. `[customizer]` *(Function)*: The function to customize comparisons. - -#### Returns -*(boolean)*: Returns `true` if the values are equivalent, else `false`. - -#### Example -```js -function isGreeting(value) { - return /^h(?:i|ello)$/.test(value); -} - -function customizer(objValue, othValue) { - if (isGreeting(objValue) && isGreeting(othValue)) { - return true; - } -} - -var array = ['hello', 'goodbye']; -var other = ['hi', 'goodbye']; - -_.isEqualWith(array, other, customizer); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_iserrorvalue"></a>`_.isError(value)` -<a href="#_iserrorvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10904 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.iserror "See the npm package") - -Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, -`SyntaxError`, `TypeError`, or `URIError` object. - -#### Since -3.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is an error object, else `false`. - -#### Example -```js -_.isError(new Error); -// => true - -_.isError(Error); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isfinitevalue"></a>`_.isFinite(value)` -<a href="#_isfinitevalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10939 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isfinite "See the npm package") - -Checks if `value` is a finite primitive number. -<br> -<br> -**Note:** This method is based on -[`Number.isFinite`](https://mdn.io/Number/isFinite). - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is a finite number, else `false`. - -#### Example -```js -_.isFinite(3); -// => true - -_.isFinite(Number.MIN_VALUE); -// => true - -_.isFinite(Infinity); -// => false - -_.isFinite('3'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isfunctionvalue"></a>`_.isFunction(value)` -<a href="#_isfunctionvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10961 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isfunction "See the npm package") - -Checks if `value` is classified as a `Function` object. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isFunction(_); -// => true - -_.isFunction(/abc/); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isintegervalue"></a>`_.isInteger(value)` -<a href="#_isintegervalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L10995 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isinteger "See the npm package") - -Checks if `value` is an integer. -<br> -<br> -**Note:** This method is based on -[`Number.isInteger`](https://mdn.io/Number/isInteger). - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is an integer, else `false`. - -#### Example -```js -_.isInteger(3); -// => true - -_.isInteger(Number.MIN_VALUE); -// => false - -_.isInteger(Infinity); -// => false - -_.isInteger('3'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_islengthvalue"></a>`_.isLength(value)` -<a href="#_islengthvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11026 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.islength "See the npm package") - -Checks if `value` is a valid array-like length. -<br> -<br> -**Note:** This function is loosely based on -[`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is a valid length, else `false`. - -#### Example -```js -_.isLength(3); -// => true - -_.isLength(Number.MIN_VALUE); -// => false - -_.isLength(Infinity); -// => false - -_.isLength('3'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_ismapvalue"></a>`_.isMap(value)` -<a href="#_ismapvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11107 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.ismap "See the npm package") - -Checks if `value` is classified as a `Map` object. - -#### Since -4.3.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isMap(new Map); -// => true - -_.isMap(new WeakMap); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_ismatchobject-source"></a>`_.isMatch(object, source)` -<a href="#_ismatchobject-source">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11135 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.ismatch "See the npm package") - -Performs a partial deep comparison between `object` and `source` to -determine if `object` contains equivalent property values. This method is -equivalent to a `_.matches` function when `source` is partially applied. -<br> -<br> -**Note:** This method supports comparing the same values as `_.isEqual`. - -#### Since -3.0.0 -#### Arguments -1. `object` *(Object)*: The object to inspect. -2. `source` *(Object)*: The object of property values to match. - -#### Returns -*(boolean)*: Returns `true` if `object` is a match, else `false`. - -#### Example -```js -var object = { 'user': 'fred', 'age': 40 }; - -_.isMatch(object, { 'age': 40 }); -// => true - -_.isMatch(object, { 'age': 36 }); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_ismatchwithobject-source-customizer"></a>`_.isMatchWith(object, source, [customizer])` -<a href="#_ismatchwithobject-source-customizer">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11171 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.ismatchwith "See the npm package") - -This method is like `_.isMatch` except that it accepts `customizer` which -is invoked to compare values. If `customizer` returns `undefined`, comparisons -are handled by the method instead. The `customizer` is invoked with five -arguments: *(objValue, srcValue, index|key, object, source)*. - -#### Since -4.0.0 -#### Arguments -1. `object` *(Object)*: The object to inspect. -2. `source` *(Object)*: The object of property values to match. -3. `[customizer]` *(Function)*: The function to customize comparisons. - -#### Returns -*(boolean)*: Returns `true` if `object` is a match, else `false`. - -#### Example -```js -function isGreeting(value) { - return /^h(?:i|ello)$/.test(value); -} - -function customizer(objValue, srcValue) { - if (isGreeting(objValue) && isGreeting(srcValue)) { - return true; - } -} - -var object = { 'greeting': 'hello' }; -var source = { 'greeting': 'hi' }; - -_.isMatchWith(object, source, customizer); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isnanvalue"></a>`_.isNaN(value)` -<a href="#_isnanvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11204 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isnan "See the npm package") - -Checks if `value` is `NaN`. -<br> -<br> -**Note:** This method is based on -[`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as -global [`isNaN`](https://mdn.io/isNaN) which returns `true` for -`undefined` and other non-number values. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `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="_isnativevalue"></a>`_.isNative(value)` -<a href="#_isnativevalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11237 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isnative "See the npm package") - -Checks if `value` is a pristine native function. -<br> -<br> -**Note:** This method can't reliably detect native functions in the -presence of the `core-js` package because `core-js` circumvents this kind -of detection. Despite multiple requests, the `core-js` maintainer has made -it clear: any attempt to fix the detection will be obstructed. As a result, -we're left with little choice but to throw an error. Unfortunately, this -also affects packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), -which rely on `core-js`. - -#### Since -3.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is a native function, else `false`. - -#### Example -```js -_.isNative(Array.prototype.push); -// => true - -_.isNative(_); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isnilvalue"></a>`_.isNil(value)` -<a href="#_isnilvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11285 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isnil "See the npm package") - -Checks if `value` is `null` or `undefined`. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is nullish, else `false`. - -#### Example -```js -_.isNil(null); -// => true - -_.isNil(void 0); -// => true - -_.isNil(NaN); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isnullvalue"></a>`_.isNull(value)` -<a href="#_isnullvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11261 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isnull "See the npm package") - -Checks if `value` is `null`. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is `null`, else `false`. - -#### Example -```js -_.isNull(null); -// => true - -_.isNull(void 0); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isnumbervalue"></a>`_.isNumber(value)` -<a href="#_isnumbervalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11316 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isnumber "See the npm package") - -Checks if `value` is classified as a `Number` primitive or object. -<br> -<br> -**Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are -classified as numbers, use the `_.isFinite` method. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isNumber(3); -// => true - -_.isNumber(Number.MIN_VALUE); -// => true - -_.isNumber(Infinity); -// => true - -_.isNumber('3'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isobjectvalue"></a>`_.isObject(value)` -<a href="#_isobjectvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11056 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isobject "See the npm package") - -Checks if `value` is the -[language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) -of `Object`. *(e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)* - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is an object, else `false`. - -#### Example -```js -_.isObject({}); -// => true - -_.isObject([1, 2, 3]); -// => true - -_.isObject(_.noop); -// => true - -_.isObject(null); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isobjectlikevalue"></a>`_.isObjectLike(value)` -<a href="#_isobjectlikevalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11085 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isobjectlike "See the npm package") - -Checks if `value` is object-like. A value is object-like if it's not `null` -and has a `typeof` result of "object". - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is object-like, else `false`. - -#### Example -```js -_.isObjectLike({}); -// => true - -_.isObjectLike([1, 2, 3]); -// => true - -_.isObjectLike(_.noop); -// => false - -_.isObjectLike(null); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isplainobjectvalue"></a>`_.isPlainObject(value)` -<a href="#_isplainobjectvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11350 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isplainobject "See the npm package") - -Checks if `value` is a plain object, that is, an object created by the -`Object` constructor or one with a `[[Prototype]]` of `null`. - -#### Since -0.8.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is a plain object, else `false`. - -#### Example -```js -function Foo() { - this.a = 1; -} - -_.isPlainObject(new Foo); -// => false - -_.isPlainObject([1, 2, 3]); -// => false - -_.isPlainObject({ 'x': 0, 'y': 0 }); -// => true - -_.isPlainObject(Object.create(null)); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isregexpvalue"></a>`_.isRegExp(value)` -<a href="#_isregexpvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11382 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isregexp "See the npm package") - -Checks if `value` is classified as a `RegExp` object. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isRegExp(/abc/); -// => true - -_.isRegExp('/abc/'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_issafeintegervalue"></a>`_.isSafeInteger(value)` -<a href="#_issafeintegervalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11414 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.issafeinteger "See the npm package") - -Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 -double precision number which isn't the result of a rounded unsafe integer. -<br> -<br> -**Note:** This method is based on -[`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is a safe integer, else `false`. - -#### Example -```js -_.isSafeInteger(3); -// => true - -_.isSafeInteger(Number.MIN_VALUE); -// => false - -_.isSafeInteger(Infinity); -// => false - -_.isSafeInteger('3'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_issetvalue"></a>`_.isSet(value)` -<a href="#_issetvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11436 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isset "See the npm package") - -Checks if `value` is classified as a `Set` object. - -#### Since -4.3.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isSet(new Set); -// => true - -_.isSet(new WeakSet); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isstringvalue"></a>`_.isString(value)` -<a href="#_isstringvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11458 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isstring "See the npm package") - -Checks if `value` is classified as a `String` primitive or object. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isString('abc'); -// => true - -_.isString(1); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_issymbolvalue"></a>`_.isSymbol(value)` -<a href="#_issymbolvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11481 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.issymbol "See the npm package") - -Checks if `value` is classified as a `Symbol` primitive or object. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isSymbol(Symbol.iterator); -// => true - -_.isSymbol('abc'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_istypedarrayvalue"></a>`_.isTypedArray(value)` -<a href="#_istypedarrayvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11504 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.istypedarray "See the npm package") - -Checks if `value` is classified as a typed array. - -#### Since -3.0.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isTypedArray(new Uint8Array); -// => true - -_.isTypedArray([]); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isundefinedvalue"></a>`_.isUndefined(value)` -<a href="#_isundefinedvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11526 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isundefined "See the npm package") - -Checks if `value` is `undefined`. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is `undefined`, else `false`. - -#### Example -```js -_.isUndefined(void 0); -// => true - -_.isUndefined(null); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isweakmapvalue"></a>`_.isWeakMap(value)` -<a href="#_isweakmapvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11548 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isweakmap "See the npm package") - -Checks if `value` is classified as a `WeakMap` object. - -#### Since -4.3.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isWeakMap(new WeakMap); -// => true - -_.isWeakMap(new Map); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_isweaksetvalue"></a>`_.isWeakSet(value)` -<a href="#_isweaksetvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11570 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.isweakset "See the npm package") - -Checks if `value` is classified as a `WeakSet` object. - -#### Since -4.3.0 -#### Arguments -1. `value` *(*)*: The value to check. - -#### Returns -*(boolean)*: Returns `true` if `value` is correctly classified, else `false`. - -#### Example -```js -_.isWeakSet(new WeakSet); -// => true - -_.isWeakSet(new Set); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_ltvalue-other"></a>`_.lt(value, other)` -<a href="#_ltvalue-other">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11597 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.lt "See the npm package") - -Checks if `value` is less than `other`. - -#### Since -3.9.0 -#### Arguments -1. `value` *(*)*: The value to compare. -2. `other` *(*)*: The other value to compare. - -#### Returns -*(boolean)*: Returns `true` if `value` is less than `other`, else `false`. - -#### Example -```js -_.lt(1, 3); -// => true - -_.lt(3, 3); -// => false - -_.lt(3, 1); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_ltevalue-other"></a>`_.lte(value, other)` -<a href="#_ltevalue-other">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11622 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.lte "See the npm package") - -Checks if `value` is less than or equal to `other`. - -#### Since -3.9.0 -#### Arguments -1. `value` *(*)*: The value to compare. -2. `other` *(*)*: The other value to compare. - -#### Returns -*(boolean)*: Returns `true` if `value` is less than or equal to `other`, else `false`. - -#### Example -```js -_.lte(1, 3); -// => true - -_.lte(3, 3); -// => true - -_.lte(3, 1); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_toarrayvalue"></a>`_.toArray(value)` -<a href="#_toarrayvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11649 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.toarray "See the npm package") - -Converts `value` to an array. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to convert. - -#### Returns -*(Array)*: Returns the converted array. - -#### Example -```js -_.toArray({ 'a': 1, 'b': 2 }); -// => [1, 2] - -_.toArray('abc'); -// => ['a', 'b', 'c'] - -_.toArray(1); -// => [] - -_.toArray(null); -// => [] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_tofinitevalue"></a>`_.toFinite(value)` -<a href="#_tofinitevalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11688 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.tofinite "See the npm package") - -Converts `value` to a finite number. - -#### Since -4.12.0 -#### Arguments -1. `value` *(*)*: The value to convert. - -#### Returns -*(number)*: Returns the converted number. - -#### Example -```js -_.toFinite(3.2); -// => 3.2 - -_.toFinite(Number.MIN_VALUE); -// => 5e-324 - -_.toFinite(Infinity); -// => 1.7976931348623157e+308 - -_.toFinite('3.2'); -// => 3.2 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_tointegervalue"></a>`_.toInteger(value)` -<a href="#_tointegervalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11726 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.tointeger "See the npm package") - -Converts `value` to an integer. -<br> -<br> -**Note:** This method is loosely based on -[`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger). - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to convert. - -#### Returns -*(number)*: Returns the converted integer. - -#### Example -```js -_.toInteger(3.2); -// => 3 - -_.toInteger(Number.MIN_VALUE); -// => 0 - -_.toInteger(Infinity); -// => 1.7976931348623157e+308 - -_.toInteger('3.2'); -// => 3 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_tolengthvalue"></a>`_.toLength(value)` -<a href="#_tolengthvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11760 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.tolength "See the npm package") - -Converts `value` to an integer suitable for use as the length of an -array-like object. -<br> -<br> -**Note:** This method is based on -[`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to convert. - -#### Returns -*(number)*: Returns the converted integer. - -#### Example -```js -_.toLength(3.2); -// => 3 - -_.toLength(Number.MIN_VALUE); -// => 0 - -_.toLength(Infinity); -// => 4294967295 - -_.toLength('3.2'); -// => 3 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_tonumbervalue"></a>`_.toNumber(value)` -<a href="#_tonumbervalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11787 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.tonumber "See the npm package") - -Converts `value` to a number. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to process. - -#### Returns -*(number)*: Returns the number. - -#### Example -```js -_.toNumber(3.2); -// => 3.2 - -_.toNumber(Number.MIN_VALUE); -// => 5e-324 - -_.toNumber(Infinity); -// => Infinity - -_.toNumber('3.2'); -// => 3.2 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_toplainobjectvalue"></a>`_.toPlainObject(value)` -<a href="#_toplainobjectvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11832 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.toplainobject "See the npm package") - -Converts `value` to a plain object flattening inherited enumerable string -keyed properties of `value` to own properties of the plain object. - -#### Since -3.0.0 -#### Arguments -1. `value` *(*)*: The value to convert. - -#### Returns -*(Object)*: Returns the converted plain object. - -#### Example -```js -function Foo() { - this.b = 2; -} - -Foo.prototype.c = 3; - -_.assign({ 'a': 1 }, new Foo); -// => { 'a': 1, 'b': 2 } - -_.assign({ 'a': 1 }, _.toPlainObject(new Foo)); -// => { 'a': 1, 'b': 2, 'c': 3 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_tosafeintegervalue"></a>`_.toSafeInteger(value)` -<a href="#_tosafeintegervalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11860 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.tosafeinteger "See the npm package") - -Converts `value` to a safe integer. A safe integer can be compared and -represented correctly. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to convert. - -#### Returns -*(number)*: Returns the converted integer. - -#### Example -```js -_.toSafeInteger(3.2); -// => 3 - -_.toSafeInteger(Number.MIN_VALUE); -// => 0 - -_.toSafeInteger(Infinity); -// => 9007199254740991 - -_.toSafeInteger('3.2'); -// => 3 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_tostringvalue"></a>`_.toString(value)` -<a href="#_tostringvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11885 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.tostring "See the npm package") - -Converts `value` to a string. An empty string is returned for `null` -and `undefined` values. The sign of `-0` is preserved. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to process. - -#### Returns -*(string)*: Returns the string. - -#### Example -```js -_.toString(null); -// => '' - -_.toString(-0); -// => '-0' - -_.toString([1, 2, 3]); -// => '1,2,3' -``` -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- div --> - -## `“Math” Methods` - -<!-- div --> - -### <a id="_addaugend-addend"></a>`_.add(augend, addend)` -<a href="#_addaugend-addend">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15481 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.add "See the npm package") - -Adds two numbers. - -#### Since -3.4.0 -#### Arguments -1. `augend` *(number)*: The first number in an addition. -2. `addend` *(number)*: The second number in an addition. - -#### Returns -*(number)*: Returns the total. - -#### Example -```js -_.add(6, 4); -// => 10 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_ceilnumber-precision0"></a>`_.ceil(number, [precision=0])` -<a href="#_ceilnumber-precision0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15506 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.ceil "See the npm package") - -Computes `number` rounded up to `precision`. - -#### Since -3.10.0 -#### Arguments -1. `number` *(number)*: The number to round up. -2. `[precision=0]` *(number)*: The precision to round up to. - -#### Returns -*(number)*: Returns the rounded up number. - -#### Example -```js -_.ceil(4.006); -// => 5 - -_.ceil(6.004, 2); -// => 6.01 - -_.ceil(6040, -2); -// => 6100 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_dividedividend-divisor"></a>`_.divide(dividend, divisor)` -<a href="#_dividedividend-divisor">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15523 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.divide "See the npm package") - -Divide two numbers. - -#### Since -4.7.0 -#### Arguments -1. `dividend` *(number)*: The first number in a division. -2. `divisor` *(number)*: The second number in a division. - -#### Returns -*(number)*: Returns the quotient. - -#### Example -```js -_.divide(6, 4); -// => 1.5 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_floornumber-precision0"></a>`_.floor(number, [precision=0])` -<a href="#_floornumber-precision0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15548 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.floor "See the npm package") - -Computes `number` rounded down to `precision`. - -#### Since -3.10.0 -#### Arguments -1. `number` *(number)*: The number to round down. -2. `[precision=0]` *(number)*: The precision to round down to. - -#### Returns -*(number)*: Returns the rounded down number. - -#### Example -```js -_.floor(4.006); -// => 4 - -_.floor(0.046, 2); -// => 0.04 - -_.floor(4060, -2); -// => 4000 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_maxarray"></a>`_.max(array)` -<a href="#_maxarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15568 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.max "See the npm package") - -Computes the maximum value of `array`. If `array` is empty or falsey, -`undefined` is returned. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to iterate over. - -#### Returns -*(*)*: Returns the maximum value. - -#### Example -```js -_.max([4, 2, 8, 6]); -// => 8 - -_.max([]); -// => undefined -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_maxbyarray-iteratee_identity"></a>`_.maxBy(array, [iteratee=_.identity])` -<a href="#_maxbyarray-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15598 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.maxby "See the npm package") - -This method is like `_.max` except that it accepts `iteratee` which is -invoked for each element in `array` to generate the criterion by which -the value is ranked. The iteratee is invoked with one argument: *(value)*. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(*)*: Returns the maximum value. - -#### Example -```js -var objects = [{ 'n': 1 }, { 'n': 2 }]; - -_.maxBy(objects, function(o) { return o.n; }); -// => { 'n': 2 } - -// The `_.property` iteratee shorthand. -_.maxBy(objects, 'n'); -// => { 'n': 2 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_meanarray"></a>`_.mean(array)` -<a href="#_meanarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15618 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.mean "See the npm package") - -Computes the mean of the values in `array`. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to iterate over. - -#### Returns -*(number)*: Returns the mean. - -#### Example -```js -_.mean([4, 2, 8, 6]); -// => 5 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_meanbyarray-iteratee_identity"></a>`_.meanBy(array, [iteratee=_.identity])` -<a href="#_meanbyarray-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15646 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.meanby "See the npm package") - -This method is like `_.mean` except that it accepts `iteratee` which is -invoked for each element in `array` to generate the value to be averaged. -The iteratee is invoked with one argument: *(value)*. - -#### Since -4.7.0 -#### Arguments -1. `array` *(Array)*: The array to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(number)*: Returns the mean. - -#### Example -```js -var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }]; - -_.meanBy(objects, function(o) { return o.n; }); -// => 5 - -// The `_.property` iteratee shorthand. -_.meanBy(objects, 'n'); -// => 5 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_minarray"></a>`_.min(array)` -<a href="#_minarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15668 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.min "See the npm package") - -Computes the minimum value of `array`. If `array` is empty or falsey, -`undefined` is returned. - -#### Since -0.1.0 -#### Arguments -1. `array` *(Array)*: The array to iterate over. - -#### Returns -*(*)*: Returns the minimum value. - -#### Example -```js -_.min([4, 2, 8, 6]); -// => 2 - -_.min([]); -// => undefined -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_minbyarray-iteratee_identity"></a>`_.minBy(array, [iteratee=_.identity])` -<a href="#_minbyarray-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15698 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.minby "See the npm package") - -This method is like `_.min` except that it accepts `iteratee` which is -invoked for each element in `array` to generate the criterion by which -the value is ranked. The iteratee is invoked with one argument: *(value)*. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(*)*: Returns the minimum value. - -#### Example -```js -var objects = [{ 'n': 1 }, { 'n': 2 }]; - -_.minBy(objects, function(o) { return o.n; }); -// => { 'n': 1 } - -// The `_.property` iteratee shorthand. -_.minBy(objects, 'n'); -// => { 'n': 1 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_multiplymultiplier-multiplicand"></a>`_.multiply(multiplier, multiplicand)` -<a href="#_multiplymultiplier-multiplicand">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15719 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.multiply "See the npm package") - -Multiply two numbers. - -#### Since -4.7.0 -#### Arguments -1. `multiplier` *(number)*: The first number in a multiplication. -2. `multiplicand` *(number)*: The second number in a multiplication. - -#### Returns -*(number)*: Returns the product. - -#### Example -```js -_.multiply(6, 4); -// => 24 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_roundnumber-precision0"></a>`_.round(number, [precision=0])` -<a href="#_roundnumber-precision0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15744 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.round "See the npm package") - -Computes `number` rounded to `precision`. - -#### Since -3.10.0 -#### Arguments -1. `number` *(number)*: The number to round. -2. `[precision=0]` *(number)*: The precision to round to. - -#### Returns -*(number)*: Returns the rounded number. - -#### Example -```js -_.round(4.006); -// => 4 - -_.round(4.006, 2); -// => 4.01 - -_.round(4060, -2); -// => 4100 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_subtractminuend-subtrahend"></a>`_.subtract(minuend, subtrahend)` -<a href="#_subtractminuend-subtrahend">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15761 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.subtract "See the npm package") - -Subtract two numbers. - -#### Since -4.0.0 -#### Arguments -1. `minuend` *(number)*: The first number in a subtraction. -2. `subtrahend` *(number)*: The second number in a subtraction. - -#### Returns -*(number)*: Returns the difference. - -#### Example -```js -_.subtract(6, 4); -// => 2 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sumarray"></a>`_.sum(array)` -<a href="#_sumarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15779 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sum "See the npm package") - -Computes the sum of the values in `array`. - -#### Since -3.4.0 -#### Arguments -1. `array` *(Array)*: The array to iterate over. - -#### Returns -*(number)*: Returns the sum. - -#### Example -```js -_.sum([4, 2, 8, 6]); -// => 20 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_sumbyarray-iteratee_identity"></a>`_.sumBy(array, [iteratee=_.identity])` -<a href="#_sumbyarray-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15809 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.sumby "See the npm package") - -This method is like `_.sum` except that it accepts `iteratee` which is -invoked for each element in `array` to generate the value to be summed. -The iteratee is invoked with one argument: *(value)*. - -#### Since -4.0.0 -#### Arguments -1. `array` *(Array)*: The array to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(number)*: Returns the sum. - -#### Example -```js -var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }]; - -_.sumBy(objects, function(o) { return o.n; }); -// => 20 - -// The `_.property` iteratee shorthand. -_.sumBy(objects, 'n'); -// => 20 -``` -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- div --> - -## `“Number” Methods` - -<!-- div --> - -### <a id="_clampnumber-lower-upper"></a>`_.clamp(number, [lower], upper)` -<a href="#_clampnumber-lower-upper">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13306 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.clamp "See the npm package") - -Clamps `number` within the inclusive `lower` and `upper` bounds. - -#### Since -4.0.0 -#### Arguments -1. `number` *(number)*: The number to clamp. -2. `[lower]` *(number)*: The lower bound. -3. `upper` *(number)*: The upper bound. - -#### Returns -*(number)*: Returns the clamped number. - -#### Example -```js -_.clamp(-10, -5, 5); -// => -5 - -_.clamp(10, -5, 5); -// => 5 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_inrangenumber-start0-end"></a>`_.inRange(number, [start=0], end)` -<a href="#_inrangenumber-start0-end">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13360 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.inrange "See the npm package") - -Checks if `n` is between `start` and up to, but not including, `end`. If -`end` is not specified, it's set to `start` with `start` then set to `0`. -If `start` is greater than `end` the params are swapped to support -negative ranges. - -#### Since -3.3.0 -#### Arguments -1. `number` *(number)*: The number to check. -2. `[start=0]` *(number)*: The start of the range. -3. `end` *(number)*: The end of the range. - -#### Returns -*(boolean)*: Returns `true` if `number` is in the range, else `false`. - -#### Example -```js -_.inRange(3, 2, 4); -// => true - -_.inRange(4, 8); -// => true - -_.inRange(4, 2); -// => false - -_.inRange(2, 2); -// => false - -_.inRange(1.2, 2); -// => true - -_.inRange(5.2, 4); -// => false - -_.inRange(-3, -2, -6); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_randomlower0-upper1-floating"></a>`_.random([lower=0], [upper=1], [floating])` -<a href="#_randomlower0-upper1-floating">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13403 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.random "See the npm package") - -Produces a random number between the inclusive `lower` and `upper` bounds. -If only one argument is provided a number between `0` and the given number -is returned. If `floating` is `true`, or either `lower` or `upper` are -floats, a floating-point number is returned instead of an integer. -<br> -<br> -**Note:** JavaScript follows the IEEE-754 standard for resolving -floating-point values which can produce unexpected results. - -#### Since -0.7.0 -#### Arguments -1. `[lower=0]` *(number)*: The lower bound. -2. `[upper=1]` *(number)*: The upper bound. -3. `[floating]` *(boolean)*: Specify returning a floating-point number. - -#### Returns -*(number)*: Returns the 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 --> - -<!-- div --> - -## `“Object” Methods` - -<!-- div --> - -### <a id="_assignobject-sources"></a>`_.assign(object, [sources])` -<a href="#_assignobject-sources">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11923 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.assign "See the npm package") - -Assigns own enumerable string keyed properties of source objects to the -destination object. Source objects are applied from left to right. -Subsequent sources overwrite property assignments of previous sources. -<br> -<br> -**Note:** This method mutates `object` and is loosely based on -[`Object.assign`](https://mdn.io/Object/assign). - -#### Since -0.10.0 -#### Arguments -1. `object` *(Object)*: The destination object. -2. `[sources]` *(...Object)*: The source objects. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -function Foo() { - this.c = 3; -} - -function Bar() { - this.e = 5; -} - -Foo.prototype.d = 4; -Bar.prototype.f = 6; - -_.assign({ 'a': 1 }, new Foo, new Bar); -// => { 'a': 1, 'c': 3, 'e': 5 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_assigninobject-sources"></a>`_.assignIn(object, [sources])` -<a href="#_assigninobject-sources">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L11966 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.assignin "See the npm package") - -This method is like `_.assign` except that it iterates over own and -inherited source properties. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -4.0.0 -#### Aliases -*_.extend* - -#### Arguments -1. `object` *(Object)*: The destination object. -2. `[sources]` *(...Object)*: The source objects. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -function Foo() { - this.b = 2; -} - -function Bar() { - this.d = 4; -} - -Foo.prototype.c = 3; -Bar.prototype.e = 5; - -_.assignIn({ 'a': 1 }, new Foo, new Bar); -// => { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_assigninwithobject-sources-customizer"></a>`_.assignInWith(object, sources, [customizer])` -<a href="#_assigninwithobject-sources-customizer">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12005 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.assigninwith "See the npm package") - -This method is like `_.assignIn` except that it accepts `customizer` -which is invoked to produce the assigned values. If `customizer` returns -`undefined`, assignment is handled by the method instead. The `customizer` -is invoked with five arguments: *(objValue, srcValue, key, object, source)*. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -4.0.0 -#### Aliases -*_.extendWith* - -#### Arguments -1. `object` *(Object)*: The destination object. -2. `sources` *(...Object)*: The source objects. -3. `[customizer]` *(Function)*: The function to customize assigned values. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -function customizer(objValue, srcValue) { - return _.isUndefined(objValue) ? srcValue : objValue; -} - -var defaults = _.partialRight(_.assignInWith, customizer); - -defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); -// => { 'a': 1, 'b': 2 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_assignwithobject-sources-customizer"></a>`_.assignWith(object, sources, [customizer])` -<a href="#_assignwithobject-sources-customizer">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12037 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.assignwith "See the npm package") - -This method is like `_.assign` except that it accepts `customizer` -which is invoked to produce the assigned values. If `customizer` returns -`undefined`, assignment is handled by the method instead. The `customizer` -is invoked with five arguments: *(objValue, srcValue, key, object, source)*. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -4.0.0 -#### Arguments -1. `object` *(Object)*: The destination object. -2. `sources` *(...Object)*: The source objects. -3. `[customizer]` *(Function)*: The function to customize assigned values. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -function customizer(objValue, srcValue) { - return _.isUndefined(objValue) ? srcValue : objValue; -} - -var defaults = _.partialRight(_.assignWith, customizer); - -defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); -// => { 'a': 1, 'b': 2 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_atobject-paths"></a>`_.at(object, [paths])` -<a href="#_atobject-paths">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12058 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.at "See the npm package") - -Creates an array of values corresponding to `paths` of `object`. - -#### Since -1.0.0 -#### Arguments -1. `object` *(Object)*: The object to iterate over. -2. `[paths]` *(...(string|string[]))*: The property paths of elements to pick. - -#### Returns -*(Array)*: Returns the picked values. - -#### Example -```js -var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - -_.at(object, ['a[0].b.c', 'a[1]']); -// => [3, 4] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_createprototype-properties"></a>`_.create(prototype, [properties])` -<a href="#_createprototype-properties">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12096 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.create "See the npm package") - -Creates an object that inherits from the `prototype` object. If a -`properties` object is given, its own enumerable string keyed properties -are assigned to the created object. - -#### Since -2.3.0 -#### 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-sources"></a>`_.defaults(object, [sources])` -<a href="#_defaultsobject-sources">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12122 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.defaults "See the npm package") - -Assigns own and inherited enumerable string keyed properties of source -objects to the destination object for all destination properties that -resolve to `undefined`. Source objects are applied from left to right. -Once a property is set, additional values of the same property are ignored. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -0.1.0 -#### Arguments -1. `object` *(Object)*: The destination object. -2. `[sources]` *(...Object)*: The source objects. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -_.defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' }); -// => { 'user': 'barney', 'age': 36 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_defaultsdeepobject-sources"></a>`_.defaultsDeep(object, [sources])` -<a href="#_defaultsdeepobject-sources">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12147 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.defaultsdeep "See the npm package") - -This method is like `_.defaults` except that it recursively assigns -default properties. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -3.10.0 -#### Arguments -1. `object` *(Object)*: The destination object. -2. `[sources]` *(...Object)*: The source objects. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -_.defaultsDeep({ 'user': { 'name': 'barney' } }, { 'user': { 'name': 'fred', 'age': 36 } }); -// => { 'user': { 'name': 'barney', 'age': 36 } } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_findkeyobject-predicate_identity"></a>`_.findKey(object, [predicate=_.identity])` -<a href="#_findkeyobject-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12188 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.findkey "See the npm package") - -This method is like `_.find` except that it returns the key of the first -element `predicate` returns truthy for instead of the element itself. - -#### Since -1.1.0 -#### Arguments -1. `object` *(Object)*: The object to search. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(*)*: Returns the key of the matched element, else `undefined`. - -#### Example -```js -var users = { - 'barney': { 'age': 36, 'active': true }, - 'fred': { 'age': 40, 'active': false }, - 'pebbles': { 'age': 1, 'active': true } -}; - -_.findKey(users, function(o) { return o.age < 40; }); -// => 'barney' (iteration order is not guaranteed) - -// The `_.matches` iteratee shorthand. -_.findKey(users, { 'age': 1, 'active': true }); -// => 'pebbles' - -// The `_.matchesProperty` iteratee shorthand. -_.findKey(users, ['active', false]); -// => 'fred' - -// The `_.property` iteratee shorthand. -_.findKey(users, 'active'); -// => 'barney' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_findlastkeyobject-predicate_identity"></a>`_.findLastKey(object, [predicate=_.identity])` -<a href="#_findlastkeyobject-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12228 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.findlastkey "See the npm package") - -This method is like `_.findKey` except that it iterates over elements of -a collection in the opposite order. - -#### Since -2.0.0 -#### Arguments -1. `object` *(Object)*: The object to search. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(*)*: Returns the key of the matched element, else `undefined`. - -#### Example -```js -var users = { - 'barney': { 'age': 36, 'active': true }, - 'fred': { 'age': 40, 'active': false }, - 'pebbles': { 'age': 1, 'active': true } -}; - -_.findLastKey(users, function(o) { return o.age < 40; }); -// => returns 'pebbles' assuming `_.findKey` returns 'barney' - -// The `_.matches` iteratee shorthand. -_.findLastKey(users, { 'age': 36, 'active': true }); -// => 'barney' - -// The `_.matchesProperty` iteratee shorthand. -_.findLastKey(users, ['active', false]); -// => 'fred' - -// The `_.property` iteratee shorthand. -_.findLastKey(users, 'active'); -// => 'pebbles' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_forinobject-iteratee_identity"></a>`_.forIn(object, [iteratee=_.identity])` -<a href="#_forinobject-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12260 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.forin "See the npm package") - -Iterates over own and inherited enumerable string keyed properties of an -object and invokes `iteratee` for each property. The iteratee is invoked -with three arguments: *(value, key, object)*. Iteratee functions may exit -iteration early by explicitly returning `false`. - -#### Since -0.3.0 -#### Arguments -1. `object` *(Object)*: The object to iterate over. -2. `[iteratee=_.identity]` *(Function)*: The function invoked per iteration. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -function Foo() { - this.a = 1; - this.b = 2; -} - -Foo.prototype.c = 3; - -_.forIn(new Foo, function(value, key) { - console.log(key); -}); -// => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_forinrightobject-iteratee_identity"></a>`_.forInRight(object, [iteratee=_.identity])` -<a href="#_forinrightobject-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12292 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.forinright "See the npm package") - -This method is like `_.forIn` except that it iterates over properties of -`object` in the opposite order. - -#### Since -2.0.0 -#### Arguments -1. `object` *(Object)*: The object to iterate over. -2. `[iteratee=_.identity]` *(Function)*: The function invoked per iteration. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -function Foo() { - this.a = 1; - this.b = 2; -} - -Foo.prototype.c = 3; - -_.forInRight(new Foo, function(value, key) { - console.log(key); -}); -// => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_forownobject-iteratee_identity"></a>`_.forOwn(object, [iteratee=_.identity])` -<a href="#_forownobject-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12326 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.forown "See the npm package") - -Iterates over own enumerable string keyed properties of an object and -invokes `iteratee` for each property. The iteratee is invoked with three -arguments: *(value, key, object)*. Iteratee functions may exit iteration -early by explicitly returning `false`. - -#### Since -0.3.0 -#### Arguments -1. `object` *(Object)*: The object to iterate over. -2. `[iteratee=_.identity]` *(Function)*: The function invoked per iteration. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -function Foo() { - this.a = 1; - this.b = 2; -} - -Foo.prototype.c = 3; - -_.forOwn(new Foo, function(value, key) { - console.log(key); -}); -// => Logs 'a' then 'b' (iteration order is not guaranteed). -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_forownrightobject-iteratee_identity"></a>`_.forOwnRight(object, [iteratee=_.identity])` -<a href="#_forownrightobject-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12356 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.forownright "See the npm package") - -This method is like `_.forOwn` except that it iterates over properties of -`object` in the opposite order. - -#### Since -2.0.0 -#### Arguments -1. `object` *(Object)*: The object to iterate over. -2. `[iteratee=_.identity]` *(Function)*: The function invoked per iteration. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -function Foo() { - this.a = 1; - this.b = 2; -} - -Foo.prototype.c = 3; - -_.forOwnRight(new Foo, function(value, key) { - console.log(key); -}); -// => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_functionsobject"></a>`_.functions(object)` -<a href="#_functionsobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12383 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.functions "See the npm package") - -Creates an array of function property names from own enumerable properties -of `object`. - -#### Since -0.1.0 -#### Arguments -1. `object` *(Object)*: The object to inspect. - -#### Returns -*(Array)*: Returns the function names. - -#### Example -```js -function Foo() { - this.a = _.constant('a'); - this.b = _.constant('b'); -} - -Foo.prototype.c = _.constant('c'); - -_.functions(new Foo); -// => ['a', 'b'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_functionsinobject"></a>`_.functionsIn(object)` -<a href="#_functionsinobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12410 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.functionsin "See the npm package") - -Creates an array of function property names from own and inherited -enumerable properties of `object`. - -#### Since -4.0.0 -#### Arguments -1. `object` *(Object)*: The object to inspect. - -#### Returns -*(Array)*: Returns the function names. - -#### Example -```js -function Foo() { - this.a = _.constant('a'); - this.b = _.constant('b'); -} - -Foo.prototype.c = _.constant('c'); - -_.functionsIn(new Foo); -// => ['a', 'b', 'c'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_getobject-path-defaultvalue"></a>`_.get(object, path, [defaultValue])` -<a href="#_getobject-path-defaultvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12439 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.get "See the npm package") - -Gets the value at `path` of `object`. If the resolved value is -`undefined`, the `defaultValue` is used in its place. - -#### Since -3.7.0 -#### Arguments -1. `object` *(Object)*: The object to query. -2. `path` *(Array|string)*: The path of the property to get. -3. `[defaultValue]` *(*)*: The value returned for `undefined` resolved values. - -#### Returns -*(*)*: Returns the resolved value. - -#### Example -```js -var object = { 'a': [{ 'b': { 'c': 3 } }] }; - -_.get(object, 'a[0].b.c'); -// => 3 - -_.get(object, ['a', '0', 'b', 'c']); -// => 3 - -_.get(object, 'a.b.c', 'default'); -// => 'default' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_hasobject-path"></a>`_.has(object, path)` -<a href="#_hasobject-path">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12471 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.has "See the npm package") - -Checks if `path` is a direct property of `object`. - -#### Since -0.1.0 -#### Arguments -1. `object` *(Object)*: The object to query. -2. `path` *(Array|string)*: The path to check. - -#### Returns -*(boolean)*: Returns `true` if `path` exists, else `false`. - -#### Example -```js -var object = { 'a': { 'b': 2 } }; -var other = _.create({ 'a': _.create({ 'b': 2 }) }); - -_.has(object, 'a'); -// => true - -_.has(object, 'a.b'); -// => true - -_.has(object, ['a', 'b']); -// => true - -_.has(other, 'a'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_hasinobject-path"></a>`_.hasIn(object, path)` -<a href="#_hasinobject-path">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12501 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.hasin "See the npm package") - -Checks if `path` is a direct or inherited property of `object`. - -#### Since -4.0.0 -#### Arguments -1. `object` *(Object)*: The object to query. -2. `path` *(Array|string)*: The path to check. - -#### Returns -*(boolean)*: Returns `true` if `path` exists, else `false`. - -#### Example -```js -var object = _.create({ 'a': _.create({ 'b': 2 }) }); - -_.hasIn(object, 'a'); -// => true - -_.hasIn(object, 'a.b'); -// => true - -_.hasIn(object, ['a', 'b']); -// => true - -_.hasIn(object, 'b'); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_invertobject"></a>`_.invert(object)` -<a href="#_invertobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12523 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.invert "See the npm package") - -Creates an object composed of the inverted keys and values of `object`. -If `object` contains duplicate values, subsequent values overwrite -property assignments of previous values. - -#### Since -0.7.0 -#### Arguments -1. `object` *(Object)*: The object to invert. - -#### Returns -*(Object)*: Returns the new inverted object. - -#### Example -```js -var object = { 'a': 1, 'b': 2, 'c': 1 }; - -_.invert(object); -// => { '1': 'c', '2': 'b' } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_invertbyobject-iteratee_identity"></a>`_.invertBy(object, [iteratee=_.identity])` -<a href="#_invertbyobject-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12554 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.invertby "See the npm package") - -This method is like `_.invert` except that the inverted object is generated -from the results of running each element of `object` thru `iteratee`. The -corresponding inverted value of each inverted key is an array of keys -responsible for generating the inverted value. The iteratee is invoked -with one argument: *(value)*. - -#### Since -4.1.0 -#### Arguments -1. `object` *(Object)*: The object to invert. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The iteratee invoked per element. - -#### Returns -*(Object)*: Returns the new inverted object. - -#### Example -```js -var object = { 'a': 1, 'b': 2, 'c': 1 }; - -_.invertBy(object); -// => { '1': ['a', 'c'], '2': ['b'] } - -_.invertBy(object, function(value) { - return 'group' + value; -}); -// => { 'group1': ['a', 'c'], 'group2': ['b'] } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_invokeobject-path-args"></a>`_.invoke(object, path, [args])` -<a href="#_invokeobject-path-args">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12580 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.invoke "See the npm package") - -Invokes the method at `path` of `object`. - -#### Since -4.0.0 -#### Arguments -1. `object` *(Object)*: The object to query. -2. `path` *(Array|string)*: The path of the method to invoke. -3. `[args]` *(...*)*: The arguments to invoke the method with. - -#### Returns -*(*)*: Returns the result of the invoked method. - -#### Example -```js -var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; - -_.invoke(object, 'a[0].b.c.slice', 1, 3); -// => [2, 3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_keysobject"></a>`_.keys(object)` -<a href="#_keysobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12610 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.keys "See the npm package") - -Creates an array of the own enumerable property names of `object`. -<br> -<br> -**Note:** Non-object values are coerced to objects. See the -[ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) -for more details. - -#### Since -0.1.0 -#### Arguments -1. `object` *(Object)*: The object to query. - -#### Returns -*(Array)*: Returns the array of property names. - -#### Example -```js -function Foo() { - this.a = 1; - this.b = 2; -} - -Foo.prototype.c = 3; - -_.keys(new Foo); -// => ['a', 'b'] (iteration order is not guaranteed) - -_.keys('hi'); -// => ['0', '1'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_keysinobject"></a>`_.keysIn(object)` -<a href="#_keysinobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12653 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.keysin "See the npm package") - -Creates an array of the own and inherited enumerable property names of `object`. -<br> -<br> -**Note:** Non-object values are coerced to objects. - -#### Since -3.0.0 -#### Arguments -1. `object` *(Object)*: The object to query. - -#### Returns -*(Array)*: Returns the array of property names. - -#### Example -```js -function Foo() { - this.a = 1; - this.b = 2; -} - -Foo.prototype.c = 3; - -_.keysIn(new Foo); -// => ['a', 'b', 'c'] (iteration order is not guaranteed) -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_mapkeysobject-iteratee_identity"></a>`_.mapKeys(object, [iteratee=_.identity])` -<a href="#_mapkeysobject-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12695 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.mapkeys "See the npm package") - -The opposite of `_.mapValues`; this method creates an object with the -same values as `object` and keys generated by running each own enumerable -string keyed property of `object` thru `iteratee`. The iteratee is invoked -with three arguments: *(value, key, object)*. - -#### Since -3.8.0 -#### Arguments -1. `object` *(Object)*: The object to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Object)*: Returns the new mapped object. - -#### Example -```js -_.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { - return key + value; -}); -// => { 'a1': 1, 'b2': 2 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_mapvaluesobject-iteratee_identity"></a>`_.mapValues(object, [iteratee=_.identity])` -<a href="#_mapvaluesobject-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12734 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.mapvalues "See the npm package") - -Creates an object with the same keys as `object` and values generated -by running each own enumerable string keyed property of `object` thru -`iteratee`. The iteratee is invoked with three arguments:<br> -*(value, key, object)*. - -#### Since -2.4.0 -#### Arguments -1. `object` *(Object)*: The object to iterate over. -2. `[iteratee=_.identity]` *(Array|Function|Object|string)*: The function invoked per iteration. - -#### Returns -*(Object)*: Returns the new mapped object. - -#### Example -```js -var users = { - 'fred': { 'user': 'fred', 'age': 40 }, - 'pebbles': { 'user': 'pebbles', 'age': 1 } -}; - -_.mapValues(users, function(o) { return o.age; }); -// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - -// The `_.property` iteratee shorthand. -_.mapValues(users, 'age'); -// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_mergeobject-sources"></a>`_.merge(object, [sources])` -<a href="#_mergeobject-sources">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12775 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.merge "See the npm package") - -This method is like `_.assign` except that it recursively merges own and -inherited enumerable string keyed properties of source objects into the -destination object. Source properties that resolve to `undefined` are -skipped if a destination value exists. Array and plain object properties -are merged recursively. Other objects and value types are overridden by -assignment. Source objects are applied from left to right. Subsequent -sources overwrite property assignments of previous sources. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -0.5.0 -#### Arguments -1. `object` *(Object)*: The destination object. -2. `[sources]` *(...Object)*: The source objects. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -var users = { - 'data': [{ 'user': 'barney' }, { 'user': 'fred' }] -}; - -var ages = { - 'data': [{ 'age': 36 }, { 'age': 40 }] -}; - -_.merge(users, ages); -// => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_mergewithobject-sources-customizer"></a>`_.mergeWith(object, sources, customizer)` -<a href="#_mergewithobject-sources-customizer">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12817 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.mergewith "See the npm package") - -This method is like `_.merge` except that it accepts `customizer` which -is invoked to produce the merged values of the destination and source -properties. If `customizer` returns `undefined`, merging is handled by the -method instead. The `customizer` is invoked with seven arguments:<br> -*(objValue, srcValue, key, object, source, stack)*. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -4.0.0 -#### Arguments -1. `object` *(Object)*: The destination object. -2. `sources` *(...Object)*: The source objects. -3. `customizer` *(Function)*: The function to customize assigned values. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -function customizer(objValue, srcValue) { - if (_.isArray(objValue)) { - return objValue.concat(srcValue); - } -} - -var object = { - 'fruits': ['apple'], - 'vegetables': ['beet'] -}; - -var other = { - 'fruits': ['banana'], - 'vegetables': ['carrot'] -}; - -_.mergeWith(object, other, customizer); -// => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_omitobject-props"></a>`_.omit(object, [props])` -<a href="#_omitobject-props">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12840 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.omit "See the npm package") - -The opposite of `_.pick`; this method creates an object composed of the -own and inherited enumerable string keyed properties of `object` that are -not omitted. - -#### Since -0.1.0 -#### Arguments -1. `object` *(Object)*: The source object. -2. `[props]` *(...(string|string[]))*: The property identifiers to omit. - -#### Returns -*(Object)*: Returns the new object. - -#### Example -```js -var object = { 'a': 1, 'b': '2', 'c': 3 }; - -_.omit(object, ['a', 'c']); -// => { 'b': '2' } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_omitbyobject-predicate_identity"></a>`_.omitBy(object, [predicate=_.identity])` -<a href="#_omitbyobject-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12869 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.omitby "See the npm package") - -The opposite of `_.pickBy`; this method creates an object composed of -the own and inherited enumerable string keyed properties of `object` that -`predicate` doesn't return truthy for. The predicate is invoked with two -arguments: *(value, key)*. - -#### Since -4.0.0 -#### Arguments -1. `object` *(Object)*: The source object. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per property. - -#### Returns -*(Object)*: Returns the new object. - -#### Example -```js -var object = { 'a': 1, 'b': '2', 'c': 3 }; - -_.omitBy(object, _.isNumber); -// => { 'b': '2' } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_pickobject-props"></a>`_.pick(object, [props])` -<a href="#_pickobject-props">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12893 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.pick "See the npm package") - -Creates an object composed of the picked `object` properties. - -#### Since -0.1.0 -#### Arguments -1. `object` *(Object)*: The source object. -2. `[props]` *(...(string|string[]))*: The property identifiers to pick. - -#### Returns -*(Object)*: Returns the new object. - -#### Example -```js -var object = { 'a': 1, 'b': '2', 'c': 3 }; - -_.pick(object, ['a', 'c']); -// => { 'a': 1, 'c': 3 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_pickbyobject-predicate_identity"></a>`_.pickBy(object, [predicate=_.identity])` -<a href="#_pickbyobject-predicate_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12916 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.pickby "See the npm package") - -Creates an object composed of the `object` properties `predicate` returns -truthy for. The predicate is invoked with two arguments: *(value, key)*. - -#### Since -4.0.0 -#### Arguments -1. `object` *(Object)*: The source object. -2. `[predicate=_.identity]` *(Array|Function|Object|string)*: The function invoked per property. - -#### Returns -*(Object)*: Returns the new object. - -#### Example -```js -var object = { 'a': 1, 'b': '2', 'c': 3 }; - -_.pickBy(object, _.isNumber); -// => { 'a': 1, 'c': 3 } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_resultobject-path-defaultvalue"></a>`_.result(object, path, [defaultValue])` -<a href="#_resultobject-path-defaultvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12949 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.result "See the npm package") - -This method is like `_.get` except that if the resolved value is a -function it's invoked with the `this` binding of its parent object and -its result is returned. - -#### Since -0.1.0 -#### Arguments -1. `object` *(Object)*: The object to query. -2. `path` *(Array|string)*: The path of the property to resolve. -3. `[defaultValue]` *(*)*: The value returned for `undefined` resolved values. - -#### Returns -*(*)*: Returns the resolved value. - -#### Example -```js -var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; - -_.result(object, 'a[0].b.c1'); -// => 3 - -_.result(object, 'a[0].b.c2'); -// => 4 - -_.result(object, 'a[0].b.c3', 'default'); -// => 'default' - -_.result(object, 'a[0].b.c3', _.constant('default')); -// => 'default' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_setobject-path-value"></a>`_.set(object, path, value)` -<a href="#_setobject-path-value">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L12999 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.set "See the npm package") - -Sets the value at `path` of `object`. If a portion of `path` doesn't exist, -it's created. Arrays are created for missing index properties while objects -are created for all other missing properties. Use `_.setWith` to customize -`path` creation. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -3.7.0 -#### Arguments -1. `object` *(Object)*: The object to modify. -2. `path` *(Array|string)*: The path of the property to set. -3. `value` *(*)*: The value to set. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -var object = { 'a': [{ 'b': { 'c': 3 } }] }; - -_.set(object, 'a[0].b.c', 4); -console.log(object.a[0].b.c); -// => 4 - -_.set(object, ['x', '0', 'y', 'z'], 5); -console.log(object.x[0].y.z); -// => 5 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_setwithobject-path-value-customizer"></a>`_.setWith(object, path, value, [customizer])` -<a href="#_setwithobject-path-value-customizer">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13027 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.setwith "See the npm package") - -This method is like `_.set` except that it accepts `customizer` which is -invoked to produce the objects of `path`. If `customizer` returns `undefined` -path creation is handled by the method instead. The `customizer` is invoked -with three arguments: *(nsValue, key, nsObject)*. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -4.0.0 -#### Arguments -1. `object` *(Object)*: The object to modify. -2. `path` *(Array|string)*: The path of the property to set. -3. `value` *(*)*: The value to set. -4. `[customizer]` *(Function)*: The function to customize assigned values. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -var object = {}; - -_.setWith(object, '[0][1]', 'a', Object); -// => { '0': { '1': 'a' } } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_topairsobject"></a>`_.toPairs(object)` -<a href="#_topairsobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13056 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.topairs "See the npm package") - -Creates an array of own enumerable string keyed-value pairs for `object` -which can be consumed by `_.fromPairs`. If `object` is a map or set, its -entries are returned. - -#### Since -4.0.0 -#### Aliases -*_.entries* - -#### Arguments -1. `object` *(Object)*: The object to query. - -#### Returns -*(Array)*: Returns the key-value pairs. - -#### Example -```js -function Foo() { - this.a = 1; - this.b = 2; -} - -Foo.prototype.c = 3; - -_.toPairs(new Foo); -// => [['a', 1], ['b', 2]] (iteration order is not guaranteed) -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_topairsinobject"></a>`_.toPairsIn(object)` -<a href="#_topairsinobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13082 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.topairsin "See the npm package") - -Creates an array of own and inherited enumerable string keyed-value pairs -for `object` which can be consumed by `_.fromPairs`. If `object` is a map -or set, its entries are returned. - -#### Since -4.0.0 -#### Aliases -*_.entriesIn* - -#### Arguments -1. `object` *(Object)*: The object to query. - -#### Returns -*(Array)*: Returns the key-value pairs. - -#### Example -```js -function Foo() { - this.a = 1; - this.b = 2; -} - -Foo.prototype.c = 3; - -_.toPairsIn(new Foo); -// => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_transformobject-iteratee_identity-accumulator"></a>`_.transform(object, [iteratee=_.identity], [accumulator])` -<a href="#_transformobject-iteratee_identity-accumulator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13114 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.transform "See the npm package") - -An alternative to `_.reduce`; this method transforms `object` to a new -`accumulator` object which is the result of running each of its own -enumerable string keyed properties thru `iteratee`, with each invocation -potentially mutating the `accumulator` object. If `accumulator` is not -provided, a new object with the same `[[Prototype]]` will be used. The -iteratee is invoked with four arguments: *(accumulator, value, key, object)*. -Iteratee functions may exit iteration early by explicitly returning `false`. - -#### Since -1.3.0 -#### Arguments -1. `object` *(Object)*: The object to iterate over. -2. `[iteratee=_.identity]` *(Function)*: The function invoked per iteration. -3. `[accumulator]` *(*)*: The custom accumulator value. - -#### Returns -*(*)*: Returns the accumulated value. - -#### Example -```js -_.transform([2, 3, 4], function(result, n) { - result.push(n *= n); - return n % 2 == 0; -}, []); -// => [4, 9] - -_.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - (result[value] || (result[value] = [])).push(key); -}, {}); -// => { '1': ['a', 'c'], '2': ['b'] } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_unsetobject-path"></a>`_.unset(object, path)` -<a href="#_unsetobject-path">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13163 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.unset "See the npm package") - -Removes the property at `path` of `object`. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -4.0.0 -#### Arguments -1. `object` *(Object)*: The object to modify. -2. `path` *(Array|string)*: The path of the property to unset. - -#### Returns -*(boolean)*: Returns `true` if the property is deleted, else `false`. - -#### Example -```js -var object = { 'a': [{ 'b': { 'c': 7 } }] }; -_.unset(object, 'a[0].b.c'); -// => true - -console.log(object); -// => { 'a': [{ 'b': {} }] }; - -_.unset(object, ['a', '0', 'b', 'c']); -// => true - -console.log(object); -// => { 'a': [{ 'b': {} }] }; -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_updateobject-path-updater"></a>`_.update(object, path, updater)` -<a href="#_updateobject-path-updater">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13194 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.update "See the npm package") - -This method is like `_.set` except that accepts `updater` to produce the -value to set. Use `_.updateWith` to customize `path` creation. The `updater` -is invoked with one argument: *(value)*. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -4.6.0 -#### Arguments -1. `object` *(Object)*: The object to modify. -2. `path` *(Array|string)*: The path of the property to set. -3. `updater` *(Function)*: The function to produce the updated value. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -var object = { 'a': [{ 'b': { 'c': 3 } }] }; - -_.update(object, 'a[0].b.c', function(n) { return n * n; }); -console.log(object.a[0].b.c); -// => 9 - -_.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); -console.log(object.x[0].y.z); -// => 0 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_updatewithobject-path-updater-customizer"></a>`_.updateWith(object, path, updater, [customizer])` -<a href="#_updatewithobject-path-updater-customizer">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13222 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.updatewith "See the npm package") - -This method is like `_.update` except that it accepts `customizer` which is -invoked to produce the objects of `path`. If `customizer` returns `undefined` -path creation is handled by the method instead. The `customizer` is invoked -with three arguments: *(nsValue, key, nsObject)*. -<br> -<br> -**Note:** This method mutates `object`. - -#### Since -4.6.0 -#### Arguments -1. `object` *(Object)*: The object to modify. -2. `path` *(Array|string)*: The path of the property to set. -3. `updater` *(Function)*: The function to produce the updated value. -4. `[customizer]` *(Function)*: The function to customize assigned values. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -var object = {}; - -_.updateWith(object, '[0][1]', _.constant('a'), Object); -// => { '0': { '1': 'a' } } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_valuesobject"></a>`_.values(object)` -<a href="#_valuesobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13253 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.values "See the npm package") - -Creates an array of the own enumerable string keyed property values of `object`. -<br> -<br> -**Note:** Non-object values are coerced to objects. - -#### Since -0.1.0 -#### Arguments -1. `object` *(Object)*: The object to query. - -#### Returns -*(Array)*: Returns the array of property values. - -#### Example -```js -function Foo() { - this.a = 1; - this.b = 2; -} - -Foo.prototype.c = 3; - -_.values(new Foo); -// => [1, 2] (iteration order is not guaranteed) - -_.values('hi'); -// => ['h', 'i'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_valuesinobject"></a>`_.valuesIn(object)` -<a href="#_valuesinobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13281 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.valuesin "See the npm package") - -Creates an array of the own and inherited enumerable string keyed property -values of `object`. -<br> -<br> -**Note:** Non-object values are coerced to objects. - -#### Since -3.0.0 -#### Arguments -1. `object` *(Object)*: The object to query. - -#### Returns -*(Array)*: Returns the array of property values. - -#### Example -```js -function Foo() { - this.a = 1; - this.b = 2; -} - -Foo.prototype.c = 3; - -_.valuesIn(new Foo); -// => [1, 2, 3] (iteration order is not guaranteed) -``` -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- div --> - -## `“Seq” Methods` - -<!-- div --> - -### <a id="_value"></a>`_(value)` -<a href="#_value">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L1464 "View in source") [Ⓣ][1] - -Creates a `lodash` object which wraps `value` to enable implicit method -chain sequences. Methods that operate on and return arrays, collections, -and functions can be chained together. Methods that retrieve a single value -or may return a primitive value will automatically end the chain sequence -and return the unwrapped value. Otherwise, the value must be unwrapped -with `_#value`. -<br> -<br> -Explicit chain sequences, which must be unwrapped with `_#value`, may be -enabled using `_.chain`. -<br> -<br> -The execution of chained methods is lazy, that is, it's deferred until -`_#value` is implicitly or explicitly called. -<br> -<br> -Lazy evaluation allows several methods to support shortcut fusion. -Shortcut fusion is an optimization to merge iteratee calls; this avoids -the creation of intermediate arrays and can greatly reduce the number of -iteratee executions. Sections of a chain sequence qualify for shortcut -fusion if the section is applied to an array of at least `200` elements -and any iteratees accept only one argument. The heuristic for whether a -section qualifies for shortcut fusion is subject to change. -<br> -<br> -Chaining is supported in custom builds as long as the `_#value` method is -directly or indirectly included in the build. -<br> -<br> -In addition to lodash methods, wrappers have `Array` and `String` methods. -<br> -<br> -The wrapper `Array` methods are:<br> -`concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` -<br> -<br> -The wrapper `String` methods are:<br> -`replace` and `split` -<br> -<br> -The wrapper methods that support shortcut fusion are:<br> -`at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, -`findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, -`tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` -<br> -<br> -The chainable wrapper methods are:<br> -`after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, -`before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, -`commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, -`curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, -`difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, -`dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, -`flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, -`flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, -`functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, -`intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, -`keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, -`memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, -`nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, -`overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, -`pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, -`pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, -`remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, -`slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, -`takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, -`toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, -`union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, -`unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, -`valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, -`zipObject`, `zipObjectDeep`, and `zipWith` -<br> -<br> -The wrapper methods that are **not** chainable by default are:<br> -`add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, -`cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `divide`, `each`, -`eachRight`, `endsWith`, `eq`, `escape`, `escapeRegExp`, `every`, `find`, -`findIndex`, `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `first`, -`floor`, `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, -`forOwnRight`, `get`, `gt`, `gte`, `has`, `hasIn`, `head`, `identity`, -`includes`, `indexOf`, `inRange`, `invoke`, `isArguments`, `isArray`, -`isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`, -`isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`, -`isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`, -`isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, -`isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, -`isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, -`isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, -`lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, -`min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, -`padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, -`repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, -`snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, -`sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, -`stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, -`template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, -`toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, -`trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, -`upperFirst`, `value`, and `words` - -#### Arguments -1. `value` *(*)*: The value to wrap in a `lodash` instance. - -#### Returns -*(Object)*: Returns the new `lodash` wrapper instance. - -#### Example -```js -function square(n) { - return n * n; -} - -var wrapped = _([1, 2, 3]); - -// Returns an unwrapped value. -wrapped.reduce(_.add); -// => 6 - -// Returns a wrapped value. -var squares = wrapped.map(square); - -_.isArray(squares); -// => false - -_.isArray(squares.value()); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_chainvalue"></a>`_.chain(value)` -<a href="#_chainvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8031 "View in source") [Ⓣ][1] - -Creates a `lodash` wrapper instance that wraps `value` with explicit method -chain sequences enabled. The result of such sequences must be unwrapped -with `_#value`. - -#### Since -1.3.0 -#### Arguments -1. `value` *(*)*: The value to wrap. - -#### Returns -*(Object)*: Returns the new `lodash` wrapper instance. - -#### Example -```js -var users = [ - { 'user': 'barney', 'age': 36 }, - { 'user': 'fred', 'age': 40 }, - { 'user': 'pebbles', 'age': 1 } -]; - -var youngest = _ - .chain(users) - .sortBy('age') - .map(function(o) { - return o.user + ' is ' + o.age; - }) - .head() - .value(); -// => 'pebbles is 1' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_tapvalue-interceptor"></a>`_.tap(value, interceptor)` -<a href="#_tapvalue-interceptor">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8060 "View in source") [Ⓣ][1] - -This method invokes `interceptor` and returns `value`. The interceptor -is invoked with one argument; *(value)*. The purpose of this method is to -"tap into" a method chain sequence in order to modify intermediate results. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: The value to provide to `interceptor`. -2. `interceptor` *(Function)*: The function to invoke. - -#### Returns -*(*)*: Returns `value`. - -#### Example -```js -_([1, 2, 3]) - .tap(function(array) { - // Mutate input array. - array.pop(); - }) - .reverse() - .value(); -// => [2, 1] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_thruvalue-interceptor"></a>`_.thru(value, interceptor)` -<a href="#_thruvalue-interceptor">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8088 "View in source") [Ⓣ][1] - -This method is like `_.tap` except that it returns the result of `interceptor`. -The purpose of this method is to "pass thru" values replacing intermediate -results in a method chain sequence. - -#### Since -3.0.0 -#### Arguments -1. `value` *(*)*: The value to provide to `interceptor`. -2. `interceptor` *(Function)*: The function to invoke. - -#### Returns -*(*)*: Returns the result of `interceptor`. - -#### Example -```js -_(' abc ') - .chain() - .trim() - .thru(function(value) { - return [value]; - }) - .value(); -// => ['abc'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_prototypesymboliterator"></a>`_.prototype[Symbol.iterator]()` -<a href="#_prototypesymboliterator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8244 "View in source") [Ⓣ][1] - -Enables the wrapper to be iterable. - -#### Since -4.0.0 -#### Returns -*(Object)*: Returns the wrapper object. - -#### Example -```js -var wrapped = _([1, 2]); - -wrapped[Symbol.iterator]() === wrapped; -// => true - -Array.from(wrapped); -// => [1, 2] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_prototypeatpaths"></a>`_.prototype.at([paths])` -<a href="#_prototypeatpaths">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8108 "View in source") [Ⓣ][1] - -This method is the wrapper version of `_.at`. - -#### Since -1.0.0 -#### Arguments -1. `[paths]` *(...(string|string[]))*: The property paths of elements to pick. - -#### Returns -*(Object)*: Returns the new `lodash` wrapper instance. - -#### Example -```js -var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - -_(object).at(['a[0].b.c', 'a[1]']).value(); -// => [3, 4] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_prototypechain"></a>`_.prototype.chain()` -<a href="#_prototypechain">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8160 "View in source") [Ⓣ][1] - -Creates a `lodash` wrapper instance with explicit method chain sequences enabled. - -#### Since -0.1.0 -#### Returns -*(Object)*: Returns the new `lodash` wrapper instance. - -#### Example -```js -var users = [ - { 'user': 'barney', 'age': 36 }, - { 'user': 'fred', 'age': 40 } -]; - -// A sequence without explicit chaining. -_(users).head(); -// => { 'user': 'barney', 'age': 36 } - -// A sequence with explicit chaining. -_(users) - .chain() - .head() - .pick('user') - .value(); -// => { 'user': 'barney' } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_prototypecommit"></a>`_.prototype.commit()` -<a href="#_prototypecommit">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8190 "View in source") [Ⓣ][1] - -Executes the chain sequence and returns the wrapped result. - -#### Since -3.2.0 -#### Returns -*(Object)*: Returns the new `lodash` wrapper instance. - -#### Example -```js -var array = [1, 2]; -var wrapped = _(array).push(3); - -console.log(array); -// => [1, 2] - -wrapped = wrapped.commit(); -console.log(array); -// => [1, 2, 3] - -wrapped.last(); -// => 3 - -console.log(array); -// => [1, 2, 3] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_prototypenext"></a>`_.prototype.next()` -<a href="#_prototypenext">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8216 "View in source") [Ⓣ][1] - -Gets the next value on a wrapped object following the -[iterator protocol](https://mdn.io/iteration_protocols#iterator). - -#### Since -4.0.0 -#### Returns -*(Object)*: Returns the next iterator value. - -#### Example -```js -var wrapped = _([1, 2]); - -wrapped.next(); -// => { 'done': false, 'value': 1 } - -wrapped.next(); -// => { 'done': false, 'value': 2 } - -wrapped.next(); -// => { 'done': true, 'value': undefined } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_prototypeplantvalue"></a>`_.prototype.plant(value)` -<a href="#_prototypeplantvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8272 "View in source") [Ⓣ][1] - -Creates a clone of the chain sequence planting `value` as the wrapped value. - -#### Since -3.2.0 -#### Arguments -1. `value` *(*)*: The value to plant. - -#### Returns -*(Object)*: Returns the new `lodash` wrapper instance. - -#### Example -```js -function square(n) { - return n * n; -} - -var wrapped = _([1, 2]).map(square); -var other = wrapped.plant([3, 4]); - -other.value(); -// => [9, 16] - -wrapped.value(); -// => [1, 4] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_prototypereverse"></a>`_.prototype.reverse()` -<a href="#_prototypereverse">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8312 "View in source") [Ⓣ][1] - -This method is the wrapper version of `_.reverse`. -<br> -<br> -**Note:** This method mutates the wrapped array. - -#### Since -0.1.0 -#### Returns -*(Object)*: Returns the new `lodash` wrapper instance. - -#### Example -```js -var array = [1, 2, 3]; - -_(array).reverse().value() -// => [3, 2, 1] - -console.log(array); -// => [3, 2, 1] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_prototypevalue"></a>`_.prototype.value()` -<a href="#_prototypevalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L8344 "View in source") [Ⓣ][1] - -Executes the chain sequence to resolve the unwrapped value. - -#### Since -0.1.0 -#### Aliases -*_.prototype.toJSON, _.prototype.valueOf* - -#### Returns -*(*)*: Returns the resolved unwrapped value. - -#### Example -```js -_([1, 2, 3]).value(); -// => [1, 2, 3] -``` -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- div --> - -## `“String” Methods` - -<!-- div --> - -### <a id="_camelcasestring"></a>`_.camelCase([string=''])` -<a href="#_camelcasestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13464 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.camelcase "See the npm package") - -Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to convert. - -#### Returns -*(string)*: Returns the camel cased string. - -#### Example -```js -_.camelCase('Foo Bar'); -// => 'fooBar' - -_.camelCase('--foo-bar--'); -// => 'fooBar' - -_.camelCase('__FOO_BAR__'); -// => 'fooBar' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_capitalizestring"></a>`_.capitalize([string=''])` -<a href="#_capitalizestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13484 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.capitalize "See the npm package") - -Converts the first character of `string` to upper case and the remaining -to lower case. - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to capitalize. - -#### Returns -*(string)*: Returns the capitalized string. - -#### Example -```js -_.capitalize('FRED'); -// => 'Fred' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_deburrstring"></a>`_.deburr([string=''])` -<a href="#_deburrstring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13505 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.deburr "See the npm package") - -Deburrs `string` by converting -[latin-1 supplementary letters](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) -to basic latin letters and removing -[combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to deburr. - -#### Returns -*(string)*: Returns the deburred string. - -#### Example -```js -_.deburr('déjà vu'); -// => 'deja vu' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_endswithstring-target-positionstringlength"></a>`_.endsWith([string=''], [target], [position=string.length])` -<a href="#_endswithstring-target-positionstringlength">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13533 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.endswith "See the npm package") - -Checks if `string` ends with the given target string. - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to search. -2. `[target]` *(string)*: The string to search for. -3. `[position=string.length]` *(number)*: The position to search up to. - -#### Returns -*(boolean)*: Returns `true` if `string` ends with `target`, else `false`. - -#### Example -```js -_.endsWith('abc', 'c'); -// => true - -_.endsWith('abc', 'b'); -// => false - -_.endsWith('abc', 'b', 2); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_escapestring"></a>`_.escape([string=''])` -<a href="#_escapestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13580 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.escape "See the npm package") - -Converts the characters "&", "<", ">", '"', "'", and "\`" in `string` to -their corresponding HTML entities. -<br> -<br> -**Note:** No other characters are escaped. To escape additional -characters use a third-party library like [_he_](https://mths.be/he). -<br> -<br> -Though the ">" character is escaped for symmetry, characters like -">" and "/" don't need escaping in HTML and have no special meaning -unless they're part of a tag or unquoted attribute value. See -[Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) -*(under "semi-related fun fact")* for more details. -<br> -<br> -Backticks are escaped because in IE < `9`, they can break out of -attribute values or HTML comments. See [#59](https://html5sec.org/#59), -[#102](https://html5sec.org/#102), [#108](https://html5sec.org/#108), and -[#133](https://html5sec.org/#133) of the -[HTML5 Security Cheatsheet](https://html5sec.org/) for more details. -<br> -<br> -When working with HTML you should always -[quote attribute values](http://wonko.com/post/html-escaping) to reduce -XSS vectors. - -#### Since -0.1.0 -#### Arguments -1. `[string='']` *(string)*: The string to escape. - -#### Returns -*(string)*: Returns the escaped string. - -#### Example -```js -_.escape('fred, barney, & pebbles'); -// => 'fred, barney, & pebbles' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_escaperegexpstring"></a>`_.escapeRegExp([string=''])` -<a href="#_escaperegexpstring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13602 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.escaperegexp "See the npm package") - -Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", -"?", "(", ")", "[", "]", "{", "}", and "|" in `string`. - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to escape. - -#### Returns -*(string)*: Returns the escaped string. - -#### Example -```js -_.escapeRegExp('[lodash](https://lodash.com/)'); -// => '\[lodash\]\(https://lodash\.com/\)' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_kebabcasestring"></a>`_.kebabCase([string=''])` -<a href="#_kebabcasestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13630 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.kebabcase "See the npm package") - -Converts `string` to -[kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to convert. - -#### Returns -*(string)*: Returns the kebab cased string. - -#### Example -```js -_.kebabCase('Foo Bar'); -// => 'foo-bar' - -_.kebabCase('fooBar'); -// => 'foo-bar' - -_.kebabCase('__FOO_BAR__'); -// => 'foo-bar' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_lowercasestring"></a>`_.lowerCase([string=''])` -<a href="#_lowercasestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13654 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.lowercase "See the npm package") - -Converts `string`, as space separated words, to lower case. - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to convert. - -#### Returns -*(string)*: Returns the lower cased string. - -#### Example -```js -_.lowerCase('--Foo-Bar--'); -// => 'foo bar' - -_.lowerCase('fooBar'); -// => 'foo bar' - -_.lowerCase('__FOO_BAR__'); -// => 'foo bar' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_lowerfirststring"></a>`_.lowerFirst([string=''])` -<a href="#_lowerfirststring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13675 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.lowerfirst "See the npm package") - -Converts the first character of `string` to lower case. - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to convert. - -#### Returns -*(string)*: Returns the converted string. - -#### Example -```js -_.lowerFirst('Fred'); -// => 'fred' - -_.lowerFirst('FRED'); -// => 'fRED' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_padstring-length0-chars"></a>`_.pad([string=''], [length=0], [chars=' '])` -<a href="#_padstring-length0-chars">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13700 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.pad "See the npm package") - -Pads `string` on the left and right sides if it's shorter than `length`. -Padding characters are truncated if they can't be evenly divided by `length`. - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to pad. -2. `[length=0]` *(number)*: The padding length. -3. `[chars=' ']` *(string)*: The string used as padding. - -#### Returns -*(string)*: Returns the padded string. - -#### Example -```js -_.pad('abc', 8); -// => ' abc ' - -_.pad('abc', 8, '_-'); -// => '_-abc_-_' - -_.pad('abc', 3); -// => 'abc' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_padendstring-length0-chars"></a>`_.padEnd([string=''], [length=0], [chars=' '])` -<a href="#_padendstring-length0-chars">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13739 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.padend "See the npm package") - -Pads `string` on the right side if it's shorter than `length`. Padding -characters are truncated if they exceed `length`. - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to pad. -2. `[length=0]` *(number)*: The padding length. -3. `[chars=' ']` *(string)*: The string used as padding. - -#### Returns -*(string)*: Returns the padded string. - -#### Example -```js -_.padEnd('abc', 6); -// => 'abc ' - -_.padEnd('abc', 6, '_-'); -// => 'abc_-_' - -_.padEnd('abc', 3); -// => 'abc' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_padstartstring-length0-chars"></a>`_.padStart([string=''], [length=0], [chars=' '])` -<a href="#_padstartstring-length0-chars">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13772 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.padstart "See the npm package") - -Pads `string` on the left side if it's shorter than `length`. Padding -characters are truncated if they exceed `length`. - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to pad. -2. `[length=0]` *(number)*: The padding length. -3. `[chars=' ']` *(string)*: The string used as padding. - -#### Returns -*(string)*: Returns the padded string. - -#### Example -```js -_.padStart('abc', 6); -// => ' abc' - -_.padStart('abc', 6, '_-'); -// => '_-_abc' - -_.padStart('abc', 3); -// => 'abc' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_parseintstring-radix10"></a>`_.parseInt(string, [radix=10])` -<a href="#_parseintstring-radix10">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13806 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.parseint "See the npm package") - -Converts `string` to an integer of the specified radix. If `radix` is -`undefined` or `0`, a `radix` of `10` is used unless `value` is a -hexadecimal, in which case a `radix` of `16` is used. -<br> -<br> -**Note:** This method aligns with the -[ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. - -#### Since -1.1.0 -#### Arguments -1. `string` *(string)*: The string to convert. -2. `[radix=10]` *(number)*: The radix to interpret `value` by. - -#### Returns -*(number)*: Returns the converted integer. - -#### Example -```js -_.parseInt('08'); -// => 8 - -_.map(['6', '08', '10'], _.parseInt); -// => [6, 8, 10] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_repeatstring-n1"></a>`_.repeat([string=''], [n=1])` -<a href="#_repeatstring-n1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13840 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.repeat "See the npm package") - -Repeats the given string `n` times. - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to repeat. -2. `[n=1]` *(number)*: The number of times to repeat the string. - -#### Returns -*(string)*: Returns the repeated string. - -#### Example -```js -_.repeat('*', 3); -// => '***' - -_.repeat('abc', 2); -// => 'abcabc' - -_.repeat('abc', 0); -// => '' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_replacestring-pattern-replacement"></a>`_.replace([string=''], pattern, replacement)` -<a href="#_replacestring-pattern-replacement">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13868 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.replace "See the npm package") - -Replaces matches for `pattern` in `string` with `replacement`. -<br> -<br> -**Note:** This method is based on -[`String#replace`](https://mdn.io/String/replace). - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to modify. -2. `pattern` *(RegExp|string)*: The pattern to replace. -3. `replacement` *(Function|string)*: The match replacement. - -#### Returns -*(string)*: Returns the modified string. - -#### Example -```js -_.replace('Hi Fred', 'Fred', 'Barney'); -// => 'Hi Barney' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_snakecasestring"></a>`_.snakeCase([string=''])` -<a href="#_snakecasestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13896 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.snakecase "See the npm package") - -Converts `string` to -[snake case](https://en.wikipedia.org/wiki/Snake_case). - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to convert. - -#### Returns -*(string)*: Returns the snake cased string. - -#### Example -```js -_.snakeCase('Foo Bar'); -// => 'foo_bar' - -_.snakeCase('fooBar'); -// => 'foo_bar' - -_.snakeCase('--FOO-BAR--'); -// => 'foo_bar' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_splitstring-separator-limit"></a>`_.split([string=''], separator, [limit])` -<a href="#_splitstring-separator-limit">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13919 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.split "See the npm package") - -Splits `string` by `separator`. -<br> -<br> -**Note:** This method is based on -[`String#split`](https://mdn.io/String/split). - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to split. -2. `separator` *(RegExp|string)*: The separator pattern to split by. -3. `[limit]` *(number)*: The length to truncate results to. - -#### Returns -*(Array)*: Returns the string segments. - -#### Example -```js -_.split('a-b-c', '-', 2); -// => ['a', 'b'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_startcasestring"></a>`_.startCase([string=''])` -<a href="#_startcasestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13961 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.startcase "See the npm package") - -Converts `string` to -[start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). - -#### Since -3.1.0 -#### Arguments -1. `[string='']` *(string)*: The string to convert. - -#### Returns -*(string)*: Returns the start cased string. - -#### Example -```js -_.startCase('--foo-bar--'); -// => 'Foo Bar' - -_.startCase('fooBar'); -// => 'Foo Bar' - -_.startCase('__FOO_BAR__'); -// => 'FOO BAR' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_startswithstring-target-position0"></a>`_.startsWith([string=''], [target], [position=0])` -<a href="#_startswithstring-target-position0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L13988 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.startswith "See the npm package") - -Checks if `string` starts with the given target string. - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to search. -2. `[target]` *(string)*: The string to search for. -3. `[position=0]` *(number)*: The position to search from. - -#### Returns -*(boolean)*: Returns `true` if `string` starts with `target`, else `false`. - -#### Example -```js -_.startsWith('abc', 'a'); -// => true - -_.startsWith('abc', 'b'); -// => false - -_.startsWith('abc', 'b', 1); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_templatestring-options-optionsescape_templatesettingsescape-optionsevaluate_templatesettingsevaluate-optionsimports_templatesettingsimports-optionsinterpolate_templatesettingsinterpolate-optionssourceurllodashtemplatesourcesn-optionsvariableobj"></a>`_.template([string=''], [options={}], [options.escape=_.templateSettings.escape], [options.evaluate=_.templateSettings.evaluate], [options.imports=_.templateSettings.imports], [options.interpolate=_.templateSettings.interpolate], [options.sourceURL='lodash.templateSources[n]'], [options.variable='obj'])` -<a href="#_templatestring-options-optionsescape_templatesettingsescape-optionsevaluate_templatesettingsevaluate-optionsimports_templatesettingsimports-optionsinterpolate_templatesettingsinterpolate-optionssourceurllodashtemplatesourcesn-optionsvariableobj">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14097 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.template "See the npm package") - -Creates a compiled template function that can interpolate data properties -in "interpolate" delimiters, HTML-escape interpolated data properties in -"escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data -properties may be accessed as free variables in the template. If a setting -object is given, it takes precedence over `_.templateSettings` values. -<br> -<br> -**Note:** In the development build `_.template` utilizes -[sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) -for easier debugging. -<br> -<br> -For more information on precompiling templates see -[lodash's custom builds documentation](https://lodash.com/custom-builds). -<br> -<br> -For more information on Chrome extension sandboxes see -[Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). - -#### Since -0.1.0 -#### Arguments -1. `[string='']` *(string)*: The template string. -2. `[options={}]` *(Object)*: The options object. -3. `[options.escape=_.templateSettings.escape]` *(RegExp)*: The HTML "escape" delimiter. -4. `[options.evaluate=_.templateSettings.evaluate]` *(RegExp)*: The "evaluate" delimiter. -5. `[options.imports=_.templateSettings.imports]` *(Object)*: An object to import into the template as free variables. -6. `[options.interpolate=_.templateSettings.interpolate]` *(RegExp)*: The "interpolate" delimiter. -7. `[options.sourceURL='lodash.templateSources[n]']` *(string)*: The sourceURL of the compiled template. -8. `[options.variable='obj']` *(string)*: The data object variable name. - -#### Returns -*(Function)*: Returns the compiled template function. - -#### Example -```js -// Use the "interpolate" delimiter to create a compiled template. -var compiled = _.template('hello <%= user %>!'); -compiled({ 'user': 'fred' }); -// => 'hello fred!' - -// Use the HTML "escape" delimiter to escape data property values. -var compiled = _.template('<b><%- value %></b>'); -compiled({ 'value': '<script>' }); -// => '<b><script></b>' - -// Use the "evaluate" delimiter to execute JavaScript and generate HTML. -var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>'); -compiled({ 'users': ['fred', 'barney'] }); -// => '<li>fred</li><li>barney</li>' - -// Use the internal `print` function in "evaluate" delimiters. -var compiled = _.template('<% print("hello " + user); %>!'); -compiled({ 'user': 'barney' }); -// => 'hello barney!' - -// Use the ES delimiter as an alternative to the default "interpolate" delimiter. -var compiled = _.template('hello ${ user }!'); -compiled({ 'user': 'pebbles' }); -// => 'hello pebbles!' - -// Use backslashes to treat delimiters as plain text. -var compiled = _.template('<%= "\\<%- value %\\>" %>'); -compiled({ 'value': 'ignored' }); -// => '<%- value %>' - -// Use the `imports` option to import `jQuery` as `jq`. -var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>'; -var compiled = _.template(text, { 'imports': { 'jq': jQuery } }); -compiled({ 'users': ['fred', 'barney'] }); -// => '<li>fred</li><li>barney</li>' - -// Use the `sourceURL` option to specify a custom sourceURL for the template. -var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' }); -compiled(data); -// => Find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector. - -// Use the `variable` option to ensure a with-statement isn't used in the compiled template. -var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' }); -compiled.source; -// => function(data) { -// var __t, __p = ''; -// __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!'; -// return __p; -// } - -// Use custom template delimiters. -_.templateSettings.interpolate = /{{([\s\S]+?)}}/g; -var compiled = _.template('hello {{ user }}!'); -compiled({ 'user': 'mustache' }); -// => 'hello mustache!' - -// Use the `source` property to inline compiled templates for meaningful -// line numbers in error messages and stack traces. -fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\ - var JST = {\ - "main": ' + _.template(mainText).source + '\ - };\ -'); -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_tolowerstring"></a>`_.toLower([string=''])` -<a href="#_tolowerstring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14226 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.tolower "See the npm package") - -Converts `string`, as a whole, to lower case just like -[String#toLowerCase](https://mdn.io/toLowerCase). - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to convert. - -#### Returns -*(string)*: Returns the lower cased string. - -#### Example -```js -_.toLower('--Foo-Bar--'); -// => '--foo-bar--' - -_.toLower('fooBar'); -// => 'foobar' - -_.toLower('__FOO_BAR__'); -// => '__foo_bar__' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_toupperstring"></a>`_.toUpper([string=''])` -<a href="#_toupperstring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14251 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.toupper "See the npm package") - -Converts `string`, as a whole, to upper case just like -[String#toUpperCase](https://mdn.io/toUpperCase). - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to convert. - -#### Returns -*(string)*: Returns the upper cased string. - -#### Example -```js -_.toUpper('--foo-bar--'); -// => '--FOO-BAR--' - -_.toUpper('fooBar'); -// => 'FOOBAR' - -_.toUpper('__foo_bar__'); -// => '__FOO_BAR__' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_trimstring-charswhitespace"></a>`_.trim([string=''], [chars=whitespace])` -<a href="#_trimstring-charswhitespace">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14277 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.trim "See the npm package") - -Removes leading and trailing whitespace or specified characters from `string`. - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to trim. -2. `[chars=whitespace]` *(string)*: The characters to trim. - -#### Returns -*(string)*: Returns the trimmed string. - -#### Example -```js -_.trim(' abc '); -// => 'abc' - -_.trim('-_-abc-_-', '_-'); -// => 'abc' - -_.map([' foo ', ' bar '], _.trim); -// => ['foo', 'bar'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_trimendstring-charswhitespace"></a>`_.trimEnd([string=''], [chars=whitespace])` -<a href="#_trimendstring-charswhitespace">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14312 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.trimend "See the npm package") - -Removes trailing whitespace or specified characters from `string`. - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to trim. -2. `[chars=whitespace]` *(string)*: The characters to trim. - -#### Returns -*(string)*: Returns the trimmed string. - -#### Example -```js -_.trimEnd(' abc '); -// => ' abc' - -_.trimEnd('-_-abc-_-', '_-'); -// => '-_-abc' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_trimstartstring-charswhitespace"></a>`_.trimStart([string=''], [chars=whitespace])` -<a href="#_trimstartstring-charswhitespace">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14345 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.trimstart "See the npm package") - -Removes leading whitespace or specified characters from `string`. - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to trim. -2. `[chars=whitespace]` *(string)*: The characters to trim. - -#### Returns -*(string)*: Returns the trimmed string. - -#### Example -```js -_.trimStart(' abc '); -// => 'abc ' - -_.trimStart('-_-abc-_-', '_-'); -// => 'abc-_-' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_truncatestring-options-optionslength30-optionsomission-optionsseparator"></a>`_.truncate([string=''], [options={}], [options.length=30], [options.omission='...'], [options.separator])` -<a href="#_truncatestring-options-optionslength30-optionsomission-optionsseparator">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14396 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.truncate "See the npm package") - -Truncates `string` if it's longer than the given maximum string length. -The last characters of the truncated string are replaced with the omission -string which defaults to "...". - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to truncate. -2. `[options={}]` *(Object)*: The options object. -3. `[options.length=30]` *(number)*: The maximum string length. -4. `[options.omission='...']` *(string)*: The string to indicate text is omitted. -5. `[options.separator]` *(RegExp|string)*: The separator pattern to truncate to. - -#### Returns -*(string)*: Returns the truncated string. - -#### Example -```js -_.truncate('hi-diddly-ho there, neighborino'); -// => 'hi-diddly-ho there, neighbo...' - -_.truncate('hi-diddly-ho there, neighborino', { - 'length': 24, - 'separator': ' ' -}); -// => 'hi-diddly-ho there,...' - -_.truncate('hi-diddly-ho there, neighborino', { - 'length': 24, - 'separator': /,? +/ -}); -// => 'hi-diddly-ho there...' - -_.truncate('hi-diddly-ho there, neighborino', { - 'omission': ' [...]' -}); -// => 'hi-diddly-ho there, neig [...]' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_unescapestring"></a>`_.unescape([string=''])` -<a href="#_unescapestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14471 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.unescape "See the npm package") - -The inverse of `_.escape`; this method converts the HTML entities -`&`, `<`, `>`, `"`, `'`, and ``` in `string` to -their corresponding characters. -<br> -<br> -**Note:** No other HTML entities are unescaped. To unescape additional -HTML entities use a third-party library like [_he_](https://mths.be/he). - -#### Since -0.6.0 -#### 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="_uppercasestring"></a>`_.upperCase([string=''])` -<a href="#_uppercasestring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14498 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.uppercase "See the npm package") - -Converts `string`, as space separated words, to upper case. - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to convert. - -#### Returns -*(string)*: Returns the upper cased string. - -#### Example -```js -_.upperCase('--foo-bar'); -// => 'FOO BAR' - -_.upperCase('fooBar'); -// => 'FOO BAR' - -_.upperCase('__foo_bar__'); -// => 'FOO BAR' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_upperfirststring"></a>`_.upperFirst([string=''])` -<a href="#_upperfirststring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14519 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.upperfirst "See the npm package") - -Converts the first character of `string` to upper case. - -#### Since -4.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to convert. - -#### Returns -*(string)*: Returns the converted string. - -#### Example -```js -_.upperFirst('fred'); -// => 'Fred' - -_.upperFirst('FRED'); -// => 'FRED' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_wordsstring-pattern"></a>`_.words([string=''], [pattern])` -<a href="#_wordsstring-pattern">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14540 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.words "See the npm package") - -Splits `string` into an array of its words. - -#### Since -3.0.0 -#### Arguments -1. `[string='']` *(string)*: The string to inspect. -2. `[pattern]` *(RegExp|string)*: The pattern to match words. - -#### Returns -*(Array)*: Returns the words of `string`. - -#### Example -```js -_.words('fred, barney, & pebbles'); -// => ['fred', 'barney', 'pebbles'] - -_.words('fred, barney, & pebbles', /[^, ]+/g); -// => ['fred', 'barney', '&', 'pebbles'] -``` -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- div --> - -## `“Util” Methods` - -<!-- div --> - -### <a id="_attemptfunc-args"></a>`_.attempt(func, [args])` -<a href="#_attemptfunc-args">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14574 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.attempt "See the npm package") - -Attempts to invoke `func`, returning either the result or the caught error -object. Any additional arguments are provided to `func` when it's invoked. - -#### Since -3.0.0 -#### Arguments -1. `func` *(Function)*: The function to attempt. -2. `[args]` *(...*)*: The arguments to invoke `func` with. - -#### Returns -*(*)*: Returns the `func` result or error object. - -#### Example -```js -// Avoid throwing errors for invalid selectors. -var elements = _.attempt(function(selector) { - return document.querySelectorAll(selector); -}, '>_>'); - -if (_.isError(elements)) { - elements = []; -} -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_bindallobject-methodnames"></a>`_.bindAll(object, methodNames)` -<a href="#_bindallobject-methodnames">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14608 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.bindall "See the npm package") - -Binds methods of an object to the object itself, overwriting the existing -method. -<br> -<br> -**Note:** This method doesn't set the "length" property of bound functions. - -#### Since -0.1.0 -#### Arguments -1. `object` *(Object)*: The object to bind and assign the bound methods to. -2. `methodNames` *(...(string|string[]))*: The object method names to bind. - -#### Returns -*(Object)*: Returns `object`. - -#### Example -```js -var view = { - 'label': 'docs', - 'onClick': function() { - console.log('clicked ' + this.label); - } -}; - -_.bindAll(view, ['onClick']); -jQuery(element).on('click', view.onClick); -// => Logs 'clicked docs' when clicked. -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_condpairs"></a>`_.cond(pairs)` -<a href="#_condpairs">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14645 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.cond "See the npm package") - -Creates a function that iterates over `pairs` and invokes the corresponding -function of the first predicate to return truthy. The predicate-function -pairs are invoked with the `this` binding and arguments of the created -function. - -#### Since -4.0.0 -#### Arguments -1. `pairs` *(Array)*: The predicate-function pairs. - -#### Returns -*(Function)*: Returns the new composite function. - -#### Example -```js -var func = _.cond([ - [_.matches({ 'a': 1 }), _.constant('matches A')], - [_.conforms({ 'b': _.isNumber }), _.constant('matches B')], - [_.constant(true), _.constant('no match')] -]); - -func({ 'a': 1, 'b': 2 }); -// => 'matches A' - -func({ 'a': 0, 'b': 1 }); -// => 'matches B' - -func({ 'a': '1', 'b': '2' }); -// => 'no match' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_conformssource"></a>`_.conforms(source)` -<a href="#_conformssource">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14688 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.conforms "See the npm package") - -Creates a function that invokes the predicate properties of `source` with -the corresponding property values of a given object, returning `true` if -all predicates return truthy, else `false`. - -#### Since -4.0.0 -#### Arguments -1. `source` *(Object)*: The object of property predicates to conform to. - -#### Returns -*(Function)*: Returns the new spec function. - -#### Example -```js -var users = [ - { 'user': 'barney', 'age': 36 }, - { 'user': 'fred', 'age': 40 } -]; - -_.filter(users, _.conforms({ 'age': function(n) { return n > 38; } })); -// => [{ 'user': 'fred', 'age': 40 }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_constantvalue"></a>`_.constant(value)` -<a href="#_constantvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14711 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.constant "See the npm package") - -Creates a function that returns `value`. - -#### Since -2.4.0 -#### Arguments -1. `value` *(*)*: The value to return from the new function. - -#### Returns -*(Function)*: Returns the new constant function. - -#### Example -```js -var objects = _.times(2, _.constant({ 'a': 1 })); - -console.log(objects); -// => [{ 'a': 1 }, { 'a': 1 }] - -console.log(objects[0] === objects[1]); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_flowfuncs"></a>`_.flow([funcs])` -<a href="#_flowfuncs">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14739 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.flow "See the npm package") - -Creates a function that returns the result of invoking the given functions -with the `this` binding of the created function, where each successive -invocation is supplied the return value of the previous. - -#### Since -3.0.0 -#### Arguments -1. `[funcs]` *(...(Function|Function[]))*: Functions to invoke. - -#### Returns -*(Function)*: Returns the new composite function. - -#### Example -```js -function square(n) { - return n * n; -} - -var addSquare = _.flow([_.add, square]); -addSquare(1, 2); -// => 9 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_flowrightfuncs"></a>`_.flowRight([funcs])` -<a href="#_flowrightfuncs">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14762 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.flowright "See the npm package") - -This method is like `_.flow` except that it creates a function that -invokes the given functions from right to left. - -#### Since -3.0.0 -#### Arguments -1. `[funcs]` *(...(Function|Function[]))*: Functions to invoke. - -#### Returns -*(Function)*: Returns the new composite function. - -#### Example -```js -function square(n) { - return n * n; -} - -var addSquare = _.flowRight([square, _.add]); -addSquare(1, 2); -// => 9 -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_identityvalue"></a>`_.identity(value)` -<a href="#_identityvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14780 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.identity "See the npm package") - -This method returns the first argument given to it. - -#### Since -0.1.0 -#### Arguments -1. `value` *(*)*: Any value. - -#### Returns -*(*)*: Returns `value`. - -#### Example -```js -var object = { 'user': 'fred' }; - -console.log(_.identity(object) === object); -// => true -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_iterateefunc_identity"></a>`_.iteratee([func=_.identity])` -<a href="#_iterateefunc_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14826 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.iteratee "See the npm package") - -Creates a function that invokes `func` with the arguments of the created -function. If `func` is a property name, the created function returns the -property value for a given element. If `func` is an array or object, the -created function returns `true` for elements that contain the equivalent -source properties, otherwise it returns `false`. - -#### Since -4.0.0 -#### Arguments -1. `[func=_.identity]` *(*)*: The value to convert to a callback. - -#### Returns -*(Function)*: Returns the callback. - -#### Example -```js -var users = [ - { 'user': 'barney', 'age': 36, 'active': true }, - { 'user': 'fred', 'age': 40, 'active': false } -]; - -// The `_.matches` iteratee shorthand. -_.filter(users, _.iteratee({ 'user': 'barney', 'active': true })); -// => [{ 'user': 'barney', 'age': 36, 'active': true }] - -// The `_.matchesProperty` iteratee shorthand. -_.filter(users, _.iteratee(['user', 'fred'])); -// => [{ 'user': 'fred', 'age': 40 }] - -// The `_.property` iteratee shorthand. -_.map(users, _.iteratee('user')); -// => ['barney', 'fred'] - -// Create custom iteratee shorthands. -_.iteratee = _.wrap(_.iteratee, function(iteratee, func) { - return !_.isRegExp(func) ? iteratee(func) : function(string) { - return func.test(string); - }; -}); - -_.filter(['abc', 'def'], /ef/); -// => ['def'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_matchessource"></a>`_.matches(source)` -<a href="#_matchessource">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14854 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.matches "See the npm package") - -Creates a function that performs a partial deep comparison between a given -object and `source`, returning `true` if the given object has equivalent -property values, else `false`. The created function is equivalent to -`_.isMatch` with a `source` partially applied. -<br> -<br> -**Note:** This method supports comparing the same values as `_.isEqual`. - -#### Since -3.0.0 -#### Arguments -1. `source` *(Object)*: The object of property values to match. - -#### Returns -*(Function)*: Returns the new spec function. - -#### Example -```js -var users = [ - { 'user': 'barney', 'age': 36, 'active': true }, - { 'user': 'fred', 'age': 40, 'active': false } -]; - -_.filter(users, _.matches({ 'age': 40, 'active': false })); -// => [{ 'user': 'fred', 'age': 40, 'active': false }] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_matchespropertypath-srcvalue"></a>`_.matchesProperty(path, srcValue)` -<a href="#_matchespropertypath-srcvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14882 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.matchesproperty "See the npm package") - -Creates a function that performs a partial deep comparison between the -value at `path` of a given object to `srcValue`, returning `true` if the -object value is equivalent, else `false`. -<br> -<br> -**Note:** This method supports comparing the same values as `_.isEqual`. - -#### Since -3.2.0 -#### Arguments -1. `path` *(Array|string)*: The path of the property to get. -2. `srcValue` *(*)*: The value to match. - -#### Returns -*(Function)*: Returns the new spec function. - -#### Example -```js -var users = [ - { 'user': 'barney' }, - { 'user': 'fred' } -]; - -_.find(users, _.matchesProperty('user', 'fred')); -// => { 'user': 'fred' } -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_methodpath-args"></a>`_.method(path, [args])` -<a href="#_methodpath-args">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14910 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.method "See the npm package") - -Creates a function that invokes the method at `path` of a given object. -Any additional arguments are provided to the invoked method. - -#### Since -3.7.0 -#### Arguments -1. `path` *(Array|string)*: The path of the method to invoke. -2. `[args]` *(...*)*: The arguments to invoke the method with. - -#### Returns -*(Function)*: Returns the new invoker function. - -#### Example -```js -var objects = [ - { 'a': { 'b': _.constant(2) } }, - { 'a': { 'b': _.constant(1) } } -]; - -_.map(objects, _.method('a.b')); -// => [2, 1] - -_.map(objects, _.method(['a', 'b'])); -// => [2, 1] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_methodofobject-args"></a>`_.methodOf(object, [args])` -<a href="#_methodofobject-args">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14939 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.methodof "See the npm package") - -The opposite of `_.method`; this method creates a function that invokes -the method at a given path of `object`. Any additional arguments are -provided to the invoked method. - -#### Since -3.7.0 -#### Arguments -1. `object` *(Object)*: The object to query. -2. `[args]` *(...*)*: The arguments to invoke the method with. - -#### Returns -*(Function)*: Returns the new invoker function. - -#### Example -```js -var array = _.times(3, _.constant), - object = { 'a': array, 'b': array, 'c': array }; - -_.map(['a[2]', 'c[0]'], _.methodOf(object)); -// => [2, 0] - -_.map([['a', '2'], ['c', '0']], _.methodOf(object)); -// => [2, 0] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_mixinobjectlodash-source-options-optionschaintrue"></a>`_.mixin([object=lodash], source, [options={}], [options.chain=true])` -<a href="#_mixinobjectlodash-source-options-optionschaintrue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L14981 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.mixin "See the npm package") - -Adds all own enumerable string keyed function properties of a source -object to the destination object. If `object` is a function, then methods -are added to its prototype as well. -<br> -<br> -**Note:** Use `_.runInContext` to create a pristine `lodash` function to -avoid conflicts caused by modifying the original. - -#### Since -0.1.0 -#### Arguments -1. `[object=lodash]` *(Function|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 mixins are chainable. - -#### Returns -*(*)*: Returns `object`. - -#### Example -```js -function vowels(string) { - return _.filter(string, function(v) { - return /[aeiou]/i.test(v); - }); -} - -_.mixin({ 'vowels': vowels }); -_.vowels('fred'); -// => ['e'] - -_('fred').vowels().value(); -// => ['e'] - -_.mixin({ 'vowels': vowels }, { 'chain': false }); -_('fred').vowels(); -// => ['e'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_noconflict"></a>`_.noConflict()` -<a href="#_noconflict">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15030 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.noconflict "See the npm package") - -Reverts the `_` variable to its previous value and returns a reference to -the `lodash` function. - -#### Since -0.1.0 -#### 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/4.13.1/lodash.js#L15049 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.noop "See the npm package") - -A method that returns `undefined`. - -#### Since -2.3.0 -#### Example -```js -_.times(2, _.noop); -// => [undefined, undefined] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_nthargn0"></a>`_.nthArg([n=0])` -<a href="#_nthargn0">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15073 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.ntharg "See the npm package") - -Creates a function that gets the argument at index `n`. If `n` is negative, -the nth argument from the end is returned. - -#### Since -4.0.0 -#### Arguments -1. `[n=0]` *(number)*: The index of the argument to return. - -#### Returns -*(Function)*: Returns the new pass-thru function. - -#### Example -```js -var func = _.nthArg(1); -func('a', 'b', 'c', 'd'); -// => 'b' - -var func = _.nthArg(-2); -func('a', 'b', 'c', 'd'); -// => 'c' -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_overiteratees_identity"></a>`_.over([iteratees=[_.identity]])` -<a href="#_overiteratees_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15098 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.over "See the npm package") - -Creates a function that invokes `iteratees` with the arguments it receives -and returns their results. - -#### Since -4.0.0 -#### Arguments -1. `[iteratees=[_.identity]]` *(...(Array|Array[]|Function|Function[]|Object|Object[]|string|string[]))*: The iteratees to invoke. - -#### Returns -*(Function)*: Returns the new function. - -#### Example -```js -var func = _.over([Math.max, Math.min]); - -func(1, 2, 3, 4); -// => [4, 1] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_overeverypredicates_identity"></a>`_.overEvery([predicates=[_.identity]])` -<a href="#_overeverypredicates_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15124 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.overevery "See the npm package") - -Creates a function that checks if **all** of the `predicates` return -truthy when invoked with the arguments it receives. - -#### Since -4.0.0 -#### Arguments -1. `[predicates=[_.identity]]` *(...(Array|Array[]|Function|Function[]|Object|Object[]|string|string[]))*: The predicates to check. - -#### Returns -*(Function)*: Returns the new function. - -#### Example -```js -var func = _.overEvery([Boolean, isFinite]); - -func('1'); -// => true - -func(null); -// => false - -func(NaN); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_oversomepredicates_identity"></a>`_.overSome([predicates=[_.identity]])` -<a href="#_oversomepredicates_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15150 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.oversome "See the npm package") - -Creates a function that checks if **any** of the `predicates` return -truthy when invoked with the arguments it receives. - -#### Since -4.0.0 -#### Arguments -1. `[predicates=[_.identity]]` *(...(Array|Array[]|Function|Function[]|Object|Object[]|string|string[]))*: The predicates to check. - -#### Returns -*(Function)*: Returns the new function. - -#### Example -```js -var func = _.overSome([Boolean, isFinite]); - -func('1'); -// => true - -func(null); -// => true - -func(NaN); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_propertypath"></a>`_.property(path)` -<a href="#_propertypath">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15174 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.property "See the npm package") - -Creates a function that returns the value at `path` of a given object. - -#### Since -2.4.0 -#### Arguments -1. `path` *(Array|string)*: The path of the property to get. - -#### Returns -*(Function)*: Returns the new accessor function. - -#### Example -```js -var objects = [ - { 'a': { 'b': 2 } }, - { 'a': { 'b': 1 } } -]; - -_.map(objects, _.property('a.b')); -// => [2, 1] - -_.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); -// => [1, 2] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_propertyofobject"></a>`_.propertyOf(object)` -<a href="#_propertyofobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15199 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.propertyof "See the npm package") - -The opposite of `_.property`; this method creates a function that returns -the value at a given path of `object`. - -#### Since -3.0.0 -#### Arguments -1. `object` *(Object)*: The object to query. - -#### Returns -*(Function)*: Returns the new accessor function. - -#### Example -```js -var array = [0, 1, 2], - object = { 'a': array, 'b': array, 'c': array }; - -_.map(['a[2]', 'c[0]'], _.propertyOf(object)); -// => [2, 0] - -_.map([['a', '2'], ['c', '0']], _.propertyOf(object)); -// => [2, 0] -``` -* * * - -<!-- /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/4.13.1/lodash.js#L15246 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.range "See the npm package") - -Creates an array of numbers *(positive and/or negative)* progressing from -`start` up to, but not including, `end`. A step of `-1` is used if a negative -`start` is specified without an `end` or `step`. If `end` is not specified, -it's set to `start` with `start` then set to `0`. -<br> -<br> -**Note:** JavaScript follows the IEEE-754 standard for resolving -floating-point values which can produce unexpected results. - -#### Since -0.1.0 -#### 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 the range of numbers. - -#### Example -```js -_.range(4); -// => [0, 1, 2, 3] - -_.range(-4); -// => [0, -1, -2, -3] - -_.range(1, 5); -// => [1, 2, 3, 4] - -_.range(0, 20, 5); -// => [0, 5, 10, 15] - -_.range(0, -4, -1); -// => [0, -1, -2, -3] - -_.range(1, 4, 0); -// => [1, 1, 1] - -_.range(0); -// => [] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_rangerightstart0-end-step1"></a>`_.rangeRight([start=0], end, [step=1])` -<a href="#_rangerightstart0-end-step1">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15284 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.rangeright "See the npm package") - -This method is like `_.range` except that it populates values in -descending order. - -#### Since -4.0.0 -#### 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 the range of numbers. - -#### Example -```js -_.rangeRight(4); -// => [3, 2, 1, 0] - -_.rangeRight(-4); -// => [-3, -2, -1, 0] - -_.rangeRight(1, 5); -// => [4, 3, 2, 1] - -_.rangeRight(0, 20, 5); -// => [15, 10, 5, 0] - -_.rangeRight(0, -4, -1); -// => [-3, -2, -1, 0] - -_.rangeRight(1, 4, 0); -// => [1, 1, 1] - -_.rangeRight(0); -// => [] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_runincontextcontextroot"></a>`_.runInContext([context=root])` -<a href="#_runincontextcontextroot">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L1234 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.runincontext "See the npm package") - -Create a new pristine `lodash` function using the `context` object. - -#### Since -1.1.0 -#### Arguments -1. `[context=root]` *(Object)*: The context object. - -#### Returns -*(Function)*: Returns a new `lodash` function. - -#### Example -```js -_.mixin({ 'foo': _.constant('foo') }); - -var lodash = _.runInContext(); -lodash.mixin({ 'bar': lodash.constant('bar') }); - -_.isFunction(_.foo); -// => true -_.isFunction(_.bar); -// => false - -lodash.isFunction(lodash.foo); -// => false -lodash.isFunction(lodash.bar); -// => true - -// Use `context` to stub `Date#getTime` use in `_.now`. -var stubbed = _.runInContext({ - 'Date': function() { - return { 'getTime': stubGetTime }; - } -}); - -// Create a suped-up `defer` in Node.js. -var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_stubarray"></a>`_.stubArray()` -<a href="#_stubarray">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15304 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.stubarray "See the npm package") - -A method that returns a new empty array. - -#### Since -4.13.0 -#### Returns -*(Array)*: Returns the new empty array. - -#### Example -```js -var arrays = _.times(2, _.stubArray); - -console.log(arrays); -// => [[], []] - -console.log(arrays[0] === arrays[1]); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_stubfalse"></a>`_.stubFalse()` -<a href="#_stubfalse">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15321 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.stubfalse "See the npm package") - -A method that returns `false`. - -#### Since -4.13.0 -#### Returns -*(boolean)*: Returns `false`. - -#### Example -```js -_.times(2, _.stubFalse); -// => [false, false] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_stubobject"></a>`_.stubObject()` -<a href="#_stubobject">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15343 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.stubobject "See the npm package") - -A method that returns a new empty object. - -#### Since -4.13.0 -#### Returns -*(Object)*: Returns the new empty object. - -#### Example -```js -var objects = _.times(2, _.stubObject); - -console.log(objects); -// => [{}, {}] - -console.log(objects[0] === objects[1]); -// => false -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_stubstring"></a>`_.stubString()` -<a href="#_stubstring">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15360 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.stubstring "See the npm package") - -A method that returns an empty string. - -#### Since -4.13.0 -#### Returns -*(string)*: Returns the empty string. - -#### Example -```js -_.times(2, _.stubString); -// => ['', ''] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_stubtrue"></a>`_.stubTrue()` -<a href="#_stubtrue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15377 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.stubtrue "See the npm package") - -A method that returns `true`. - -#### Since -4.13.0 -#### Returns -*(boolean)*: Returns `true`. - -#### Example -```js -_.times(2, _.stubTrue); -// => [true, true] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_timesn-iteratee_identity"></a>`_.times(n, [iteratee=_.identity])` -<a href="#_timesn-iteratee_identity">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15400 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.times "See the npm package") - -Invokes the iteratee `n` times, returning an array of the results of -each invocation. The iteratee is invoked with one argument; *(index)*. - -#### Since -0.1.0 -#### Arguments -1. `n` *(number)*: The number of times to invoke `iteratee`. -2. `[iteratee=_.identity]` *(Function)*: The function invoked per iteration. - -#### Returns -*(Array)*: Returns the array of results. - -#### Example -```js -_.times(3, String); -// => ['0', '1', '2'] - - _.times(4, _.constant(0)); -// => [0, 0, 0, 0] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_topathvalue"></a>`_.toPath(value)` -<a href="#_topathvalue">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15435 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.topath "See the npm package") - -Converts `value` to a property path array. - -#### Since -4.0.0 -#### Arguments -1. `value` *(*)*: The value to convert. - -#### Returns -*(Array)*: Returns the new property path array. - -#### Example -```js -_.toPath('a.b.c'); -// => ['a', 'b', 'c'] - -_.toPath('a[0].b.c'); -// => ['a', '0', 'b', 'c'] -``` -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_uniqueidprefix"></a>`_.uniqueId([prefix=''])` -<a href="#_uniqueidprefix">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L15459 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.uniqueid "See the npm package") - -Generates a unique ID. If `prefix` is given, the ID is appended to it. - -#### Since -0.1.0 -#### 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 --> - -## `Properties` - -<!-- div --> - -### <a id="_version"></a>`_.VERSION` -<a href="#_version">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L16152 "View in source") [Ⓣ][1] - -(string): The semantic version number. - -* * * - -<!-- /div --> - -<!-- div --> - -### <a id="_templatesettings"></a>`_.templateSettings` -<a href="#_templatesettings">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L1509 "View in source") [Ⓣ][1] [Ⓝ](https://www.npmjs.com/package/lodash.templatesettings "See the npm package") - -(Object): By default, the template delimiters used by lodash are like 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/4.13.1/lodash.js#L1517 "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/4.13.1/lodash.js#L1525 "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/4.13.1/lodash.js#L1549 "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/4.13.1/lodash.js#L1533 "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/4.13.1/lodash.js#L1541 "View in source") [Ⓣ][1] - -(string): Used to reference the data object in the template text. - -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- div --> - -## `Methods` - -<!-- div --> - -### <a id="_templatesettingsimports_"></a>`_.templateSettings.imports._` -<a href="#_templatesettingsimports_">#</a> [Ⓢ](https://github.com/lodash/lodash/blob/4.13.1/lodash.js#L1557 "View in source") [Ⓣ][1] - -A reference to the `lodash` function. - -* * * - -<!-- /div --> - -<!-- /div --> - -<!-- /div --> - - [1]: #array "Jump back to the TOC." |