Bobby L. Craig

Lo-Dash v1.0.2

# Lo-Dash v1.0.2 A utility library delivering consistency, [customization](, [performance](, & [extras]( ## Download * Lo-Dash builds (for modern environments):
[Development]( and [Production]( * Lo-Dash compatibility builds (for legacy and modern environments):
[Development]( and [Production]( * Underscore compatibility builds:
[Development]( and [Production]( * 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]( For a list of upcoming features, check out our [roadmap]( The full changelog is available [here]( ## Installation and usage In browsers: ```html ``` Using [`npm`]( ```bash npm install lodash npm install -g lodash npm link lodash ``` To avoid potential issues, update `npm` before installing Lo-Dash: ```bash npm install npm -g ``` In [Node.js]( and [RingoJS v0.8.0+]( ```js var _ = require('lodash'); // or as a drop-in replacement for Underscore var _ = require('lodash/lodash.underscore'); ``` **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-]( ```js var _ = require('lodash')._; ``` In [Rhino]( ```js load('lodash.js'); ``` In an AMD loader like [RequireJS]( ```js require({ 'paths': { 'underscore': 'path/to/lodash' } }, ['underscore'], function(_) { console.log(_.VERSION); }); ``` ## Resources For more information check out these articles, screencasts, and other videos over Lo-Dash: * Posts - [Say “Hello” to Lo-Dash]( * Videos - [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]( - [CascadiaJS: Lo-Dash for a better utility belt]( ## Features * AMD loader support ([RequireJS](, [curl.js](, etc.) * [_(…)]( supports intuitive chaining * []( for cherry-picking collection values * [_.bindKey]( for binding [*“lazy”* defined]( methods * [_.cloneDeep]( for deep cloning arrays and objects * [_.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 * [_.merge]( for a deep [_.extend]( * [_.partial]( and [_.partialRight]( for partial application without `this` binding * [_.template]( supports [*“imports”* options](, [ES6 template delimiters](, and [sourceURLs]( * [_.where]( supports deep object comparisons * [_.clone](, [_.omit](, [_.pick](, [and more…]( "_.assign, _.cloneDeep, _.first, _.initial, _.isEqual, _.last, _.merge,") accept `callback` and `thisArg` arguments * [_.contains](, [_.size](, [_.toArray](, [and more…]( ", _.countBy, _.every, _.filter, _.find, _.forEach, _.groupBy, _.invoke,, _.max, _.min, _.pluck, _.reduce, _.reduceRight, _.reject, _.shuffle, _.some, _.sortBy, _.where") accept strings * [_.filter](, [_.find](, [](, [and more…]( "_.countBy, _.every, _.first, _.groupBy, _.initial, _.last, _.max, _.min, _.reject,, _.some, _.sortBy, _.sortedIndex, _.uniq") support *“_.pluck”* and *“_.where”* `callback` shorthands ## Support Lo-Dash has been tested in at least Chrome 5~24, Firefox 1~18, IE 6-10, Opera 9.25-12, Safari 3-6, Node.js 0.4.8-0.8.20, Narwhal 0.3.2, PhantomJS 1.8.1, RingoJS 0.9, and Rhino 1.7RC5.