Lo-Dash v0.9.2
A utility library delivering consistency, customization, performance, & extras.
Download
- Development build
- Production build
- Underscore build tailored for projects already using Underscore
- CDN copies of ≤ v0.9.2’s Production, Underscore, and Development builds are available on cdnjs thanks to CloudFlare
- For optimal file size, create a custom build with only the features you need
Dive in
We’ve got API docs, benchmarks, and unit tests.
Create your own benchmarks at jsPerf, or search for existing ones.
For a list of upcoming features, check out our roadmap.
Screencasts
For more information check out these screencasts over Lo-Dash:
- Introducing Lo-Dash
- Lo-Dash optimizations and custom builds
- Lo-Dash’s origin and why it’s a better utility belt
- Unit testing in Lo-Dash
- Lo-Dash’s approach to native method use
Features
- AMD loader support (RequireJS, curl.js, etc.)
- _.clone supports “deep” cloning
-
_.contains accepts a
fromIndex
argument - _.forEach is chainable and supports exiting iteration early
- _.forIn for iterating over an object’s own and inherited properties
- _.forOwn for iterating over an object’s own properties
-
_.isPlainObject checks if values are created by the
Object
constructor - _.lateBind for late binding
- _.merge for a “deep” _.extend
-
_.partial for partial application without
this
binding -
_.pick and _.omit accepts
callback
andthisArg
arguments - _.template supports ES6 delimiters and utilizes sourceURLs for easier debugging
- _.contains, _.size, _.toArray, and more… accept strings
Support
Lo-Dash has been tested in at least Chrome 5~23, Firefox 1~16, IE 6-10, Opera 9.25-12, Safari 3-6, Node.js 0.4.8-0.8.14, Narwhal 0.3.2, RingoJS 0.8, and Rhino 1.7RC5.
Installation and usage
In browsers:
<script src="lodash.js"></script>
Using npm:
npm install lodash
npm install -g lodash
npm link lodash
In Node.js and RingoJS v0.8.0+:
var _ = require('lodash');
Note: If Lo-Dash is installed globally, run npm link lodash
in your project’s root directory before requiring it.
In RingoJS v0.7.0-:
var _ = require('lodash')._;
In Rhino:
load('lodash.js');
In an AMD loader like RequireJS:
require({
'paths': {
'underscore': 'path/to/lodash'
}
},
['underscore'], function(_) {
console.log(_.VERSION);
});
Resolved Underscore.js issues
- Allow iteration of objects with a
length
property [#799, test] - Fix cross-browser object iteration bugs [#60, #376, test]
- Methods should work on pages with incorrectly shimmed native methods [#7, #742, test]
-
_.isEmpty
should support jQuery/MooTools DOM query collections [#690, test] -
_.isObject
should avoid V8 bug #2291 [#605, test] -
_.keys
should work witharguments
objects cross-browser [#396, test] -
_.range
should coerce arguments to numbers [#634, #683, test]
Release Notes
v0.9.2
- Added
fromIndex
argument to_.contains
- Added
moduleId
build option - Added Closure Compiler “simple” optimizations to the build process
- Added support for strings in
_.max
and_.min
- Added support for ES6 template delimiters to
_.template
- Ensured re-minification of Lo-Dash by third parties avoids Closure Compiler bugs
- Optimized
_.every
,_.find
,_.some
, and_.uniq
The full changelog is available here.
BestieJS
Lo-Dash is part of the BestieJS “Best in Class” module collection. This means we promote solid browser/environment support, ES5 precedents, unit testing, and plenty of documentation.
Author
John-David Dalton |
Contributors
Blaine Bublitz | Kit Cambridge | Mathias Bynens |