_([1, 2, 3]).forEach(alert).join(',');
// → alerts each number and returns '1,2,3'_.extend({ 'name': 'moe' }, { 'age': 40 });
// → { 'name': 'moe', 'age': 40 }
_.map([1, 2, 3], function(num) { return num * 3; });
// → [3, 6, 9]
We’ve got API docs, benchmarks, and unit tests.
For more information check out these articles, screencasts, and other videos over Lo-Dash:
_(…) supports intuitive chaining_.at for cherry-picking collection values_.bindKey for binding “lazy” defined methods_.cloneDeep for deep cloning arrays and objects_.contains accepts a fromIndex argument
_.createCallback to customize how callback arguments are handled and support callback shorthands in mixins
_.debounce and _.throttle accept an options argument for more control
_.findIndex and _.findKey for finding indexes and keys of collections
_.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_.parseInt for consistent cross-environment behavior
_.partial and _.partialRight for partial application without this binding_.runInContext for easier mocking and extended environment support
_.support to flag environment features
_.template supports “imports” options, ES6 template delimiters, and sourceURLs_.unzip as the inverse of _.zip
_.where supports deep object comparisons_.clone, _.omit, _.pick, and more… accept callback and thisArg arguments_.contains, _.size, _.toArray, and more… accept strings_.filter, _.find, _.map, and more… support “_.pluck” and “_.where” callback shorthandsLo-Dash v1.2.1 has been tested in at least Chrome 5~26, Firefox 2~20, IE 6-10, Opera 9.25~12, Safari 3-6, Node.js 0.4.8-0.10.5, Narwhal 0.3.2, PhantomJS 1.9.0, RingoJS 0.9, and Rhino 1.7RC5.
Custom builds make it easy to create lightweight versions of Lo-Dash containing only the methods you need. To top it off, we handle all method dependency and alias mapping for you. For a more detailed summary over the differences between various builds, check out the wiki page.
backbone modifier argument.
lodash backbone
legacy modifier argument.
lodash legacy
modern modifier argument.
lodash modern
mobile modifier argument.
lodash mobile
_.bindAll, _.defaults, and _.extend in strict mode, may be created using the strict modifier argument.
lodash strict
underscore modifier argument.
lodash underscore
Custom builds may be created using the following commands:
category argument to pass comma separated categories of methods to include in the build.lodash category=collections,functions
lodash category="collections, functions"
exports argument to pass comma separated names of ways to export the LoDash function.lodash exports=amd,commonjs,node
lodash exports="amd, commonjs, node"
iife argument to specify code to replace the immediately-invoked function expression that wraps Lo-Dash.
lodash iife="!function(window,undefined){%output%}(this)"
include argument to pass comma separated names of methods to include in the build.
lodash include=each,filter,map
lodash include="each, filter, map"
minus argument to pass comma separated method/category names to remove from those included in the build.
lodash underscore minus=result,shuffle
lodash underscore minus="result, shuffle"
plus argument to pass comma separated method/category names to add to those included in the build.
lodash backbone plus=random,template
lodash backbone plus="random, template"
template argument to pass the file path pattern used to match template files to precompile.
lodash template="./*.jst"
settings argument to pass the template settings used when precompiling templates.
lodash settings="{interpolate:/\{\{([\s\S]+?)\}\}/g}"
moduleId argument to specify the AMD module ID of Lo-Dash, which defaults to “lodash”, used by precompiled templates.
lodash moduleId="underscore"
All arguments, except legacy with mobile, modern, or underscore, may be combined.
Unless specified by -o or --output, all files created are saved to the current working directory.
The following options are also supported:
-c, --stdout ............... Write output to standard output-d, --debug .................. Write only the non-minified development output-h, --help .................... Display help information-m, --minify ............... Write only the minified production output-o, --output ............... Write output to a given path/filename-p, --source-map ..... Generate a source map for the minified output, using an optional source map URL-s, --silent ............... Skip status updates normally logged to the console-V, --version ............. Output current version of Lo-DashThe lodash command-line utility is available when Lo-Dash is installed as a global package
(i.e. npm install -g lodash).
In browsers:
<script src="lodash.js"></script>
Using npm:
npm install lodash
npm install -g lodash
npm link lodash
To avoid potential issues, update npm before installing Lo-Dash:
npm install npm -g
In Node.js and RingoJS v0.8.0+:
var _ = require('lodash');
// or as a drop-in replacement for Underscore
var _ = require('lodash/dist/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-:
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);
});