lodash v3.10.2
The modern build of lodash exported as Node.js/io.js modules.
Generated using lodash-cli:
$ lodash modularize modern exports=node -o ./$ lodash modern -d -o ./index.js
Installation
Using npm:
$ {sudo -H} npm i -g npm$ npm i --save lodash
In Node.js/io.js:
// load the modern buildvar _ = ;// or a method categoryvar array = ;// or a method (great for smaller builds with browserify/webpack)var chunk = ;
Note:
Don’t assign values to the special variable _
when in the REPL.
Install n_ for a REPL that includes lodash by default.
Module formats
lodash is also available in a variety of other builds & module formats.
- npm packages for modern, compatibility, & per method builds
Further Reading
Features
- ~100% code coverage
- Follows semantic versioning for releases
- Lazily evaluated chaining
- _(…) supports implicit chaining
- .ary & .rearg to change function argument limits & order
- _.at for cherry-picking collection values
- _.attempt to execute functions which may error without a try-catch
- .before to complement .after
- _.bindKey for binding “lazy” defined methods
- _.chunk for splitting an array into chunks of a given size
- _.clone supports shallow cloning of
Date
&RegExp
objects - _.cloneDeep for deep cloning arrays & objects
- .curry & .curryRight for creating curried functions
- .debounce & .throttle are cancelable & accept options for more control
- _.defaultsDeep for recursively assigning default properties
- _.fill to fill arrays with values
- _.findKey for finding keys
- .flow to complement .flowRight (a.k.a
_.compose
) - _.forEach supports exiting early
- _.forIn for iterating all enumerable properties
- _.forOwn for iterating own properties
- .get & .set for deep property getting & setting
- .gt, .gte, .lt, & .lte relational methods
- _.inRange for checking whether a number is within a given range
- _.isNative to check for native functions
- .isPlainObject & .toPlainObject to check for & convert to
Object
objects - _.isTypedArray to check for typed arrays
- _.mapKeys for mapping keys to an object
- _.matches supports deep object comparisons
- .matchesProperty to complement .matches & _.property
- .merge for a deep .extend
- .method & .methodOf to create functions that invoke methods
- _.modArgs for more advanced functional composition
- _.parseInt for consistent cross-environment behavior
- .pull, .pullAt, & _.remove for mutating arrays
- _.random supports returning floating-point numbers
- .restParam & .spread for applying rest parameters & spreading arguments to functions
- _.runInContext for collisionless mixins & easier mocking
- _.slice for creating subsets of array-like values
- .sortByAll & .sortByOrder for sorting by multiple properties & orders
- _.support for flagging environment features
- _.template supports “imports” options & ES template delimiters
- .transform as a powerful alternative to .reduce for transforming objects
- .unzipWith & .zipWith to specify how grouped values should be combined
- _.valuesIn for getting values of all enumerable properties
- .xor to complement .difference, .intersection, & .union
- .add, .round, _.sum, & more math methods
- .bind, .curry, _.partial, & more support customizable argument placeholders
- .capitalize, .trim, & more string methods
- .clone, .isEqual, & more accept customizer callbacks
- .dropWhile, .takeWhile, & more to complement .first, .initial, .last, & .rest
- .findLast, .findLastKey, & more right-associative methods
- .includes, .toArray, & more accept strings
- #commit & #plant for working with chain sequences
- _#thru to pass values thru a chain sequence
Support
Tested in Chrome 43-44, Firefox 38-39, IE 6-11, MS Edge, Safari 5-8, ChakraNode 0.12.2, io.js 2.5.0, Node.js 0.8.28, 0.10.40, & 0.12.7, PhantomJS 1.9.8, RingoJS 0.11, & Rhino 1.7.6. Automated browser & CI test runs are available. Special thanks to Sauce Labs for providing automated browser testing.