Lo-Dash v2.4.1
A utility library delivering consistency, customization, performance, & extras.
Download
Check out our wiki for details over the differences between builds.
-
Modern builds perfect for newer browsers/environments:
Development & Production -
Compatibility builds for older environment support too:
Development & Production -
Underscore builds to use as a drop-in replacement:
Development & Production
CDN copies are available on cdnjs & jsDelivr. For smaller file sizes, create custom builds with only the features needed.
Love modules? We’ve got you covered with lodash-amd, lodash-es6, lodash-node, & npm packages per method.
Dive in
There’s plenty of documentation, unit tests, & benchmarks.
Check out DevDocs as a fast, organized, & searchable interface for our documentation.
The full changelog for this release is available on our wiki.
A list of upcoming features is available on our roadmap.
Features not in Underscore
- AMD loader support (curl, dojo, requirejs, etc.)
- _(…) supports intuitive chaining
- _.at for cherry-picking collection values
- _.bindKey for binding “lazy” defined methods
- _.clone supports shallow cloning of
Date
&RegExp
objects - _.cloneDeep for deep cloning arrays & objects
- .constant & .property function generators for composing functions
- _.contains accepts a
fromIndex
- _.create for easier object inheritance
- _.createCallback for extending callbacks in methods & mixins
- _.curry for creating curried functions
- .debounce & .throttle accept additional
options
for more control - .findIndex & .findKey for finding indexes & keys
- _.forEach is chainable & supports exiting early
- _.forIn for iterating own & inherited properties
- _.forOwn for iterating own properties
- _.isPlainObject for checking if values are created by
Object
- _.mapValues for mapping values to an object
- _.memoize exposes the
cache
of memoized functions - .merge for a deep .extend
- _.noop for function placeholders
- _.now as a cross-browser
Date.now
alternative - _.parseInt for consistent behavior
- .pull & .remove for mutating arrays
- _.random supports returning floating-point numbers
- _.runInContext for easier mocking
- _.sortBy supports sorting by multiple properties
- _.support for flagging environment features
- _.template supports “imports” options & ES6 template delimiters
- .transform as a powerful alternative to .reduce for transforming objects
- _.where supports deep object comparisons
- .xor as a companion to .difference, .intersection, & .union
- _.zip is capable of unzipping values
- .omit, .pick, & more accept callbacks
- .contains, .toArray, & more accept strings
- .filter, .map, & more support “_.pluck” & “_.where” shorthands
- .findLast, .findLastIndex, & more right-associative methods
Resources
- Podcasts
- Posts
- Videos
A list of other community created podcasts, posts, & videos is available on our wiki.
Support
Tested in Chrome 5~31, Firefox 2~25, IE 6-11, Opera 9.25~17, Safari 3-7, Node.js 0.6.21~0.10.22, Narwhal 0.3.2, PhantomJS 1.9.2, RingoJS 0.9, & Rhino 1.7RC5.
Automated browser test results are available as well as Travis CI builds for lodash, lodash-cli, lodash-amd, lodash-node, & grunt-lodash.
Special thanks to Sauce Labs for providing automated browser testing.
Installation & usage
In browsers:
Using npm
:
npm i --save lodash {sudo} npm i -g lodashnpm ln lodash
var _ = ;// or as Underscorevar _ = ;
Notes:
- Don’t assign values to special variable
_
when in the REPL - If Lo-Dash is installed globally, run
npm ln lodash
in your project’s root directory before requiring it
In Rhino:
;
In an AMD loader:
;
Author
John-David Dalton |
Contributors
Blaine Bublitz | Kit Cambridge | Mathias Bynens |