Socket
Socket
Sign inDemoInstall

lodash

Package Overview
Dependencies
0
Maintainers
1
Versions
114
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    lodash

A drop-in replacement for Underscore.js delivering performance, bug fixes, and additional features.


Version published
Maintainers
1
Install size
6.15 MB
Created

Package description

What is lodash?

Lodash is a JavaScript library that provides utility functions for common programming tasks using a functional programming paradigm. It includes functions for manipulating and traversing arrays, objects, and strings, as well as utilities for functions, language, math, number, object, sequence, and utility methods.

What are lodash's main functionalities?

Array Manipulation

Lodash provides a rich set of array manipulation functions such as map, filter, find, and sort. The code sample demonstrates sorting an array in ascending order using a custom comparator.

[3, 2, 1].sort(_.compareWith(function(a, b) { return a - b; }))

Object Manipulation

Lodash allows for easy manipulation and traversal of objects. The code sample shows how to assign properties from source objects to a destination object.

_.assign({ 'a': 1 }, { 'b': 2 }, { 'c': 3 })

String Manipulation

Lodash includes functions to manipulate strings, such as converting to different cases, trimming, padding, etc. The code sample demonstrates converting a string to kebab-case.

_.kebabCase('Foo Bar')

Function Utilities

Lodash provides function utilities like debounce and throttle to control function invocation. The code sample shows a debounced function that will only be invoked after 250 milliseconds have passed without it being called again.

_.debounce(function() { console.log('Debounced'); }, 250)

Language Utilities

Lodash includes utilities for deep cloning, merging, and comparing objects. The code sample demonstrates deep cloning an object to ensure nested objects are cloned as well.

_.cloneDeep({ 'a': 1, 'b': { 'c': 2 } })

Other packages similar to lodash

Readme

Source

Lo-Dash v0.8.0

build status

A drop-in replacement* for Underscore.js, from the devs behind jsPerf.com, delivering performance, bug fixes, and additional features.

Lo-Dash’s performance is gained by avoiding slower native methods, instead opting for simplified non-ES5 compliant methods optimized for common usage, and by leveraging function compilation to reduce the number of overall function calls.

Download

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:

Features

Support

Lo-Dash has been tested in at least Chrome 5-22, Firefox 1-15, IE 6-10, Opera 9.25-12, Safari 3-6, Node.js 0.4.8-0.8.11, Narwhal 0.3.2, RingoJS 0.8, and Rhino 1.7RC5.

Custom builds

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.

  • Backbone builds, with only methods required by Backbone, may be created using the backbone modifier argument.
lodash backbone
  • CSP builds, supporting default Content Security Policy restrictions, may be created using the csp modifier argument.
lodash csp
  • Legacy builds, tailored for older browsers without ES5 support, may be created using the legacy modifier argument.
lodash legacy
  • Mobile builds, with IE < 9 bug fixes and method compilation removed, may be created using the mobile modifier argument.
lodash mobile
  • Strict builds, with _.bindAll, _.defaults, and _.extend in strict mode, may be created using the strict modifier argument.
lodash strict
  • Underscore builds, tailored for projects already using Underscore, may be created using the underscore modifier argument.
lodash underscore

Custom builds may be created using the following commands:

  • Use the category argument to pass comma separated categories of methods to include in the build.
    Valid categories (case-insensitive) are “arrays”, “chaining”, “collections”, “functions”, “objects”, and “utilities”.
lodash category=collections,functions
lodash category="collections, functions"
  • Use the exports argument to pass comma separated names of ways to export the LoDash function.
    Valid exports are “amd”, “commonjs”, “global”, “node”, and “none”.
lodash exports=amd,commonjs,node
lodash exports="amd, commonjs, node"
  • Use the iife argument to specify code to replace the immediately-invoked function expression that wraps Lo-Dash.
lodash iife="!function(window,undefined){%output%}(this)"
  • Use the include argument to pass comma separated method/category names to include in the build.
lodash include=each,filter,map
lodash include="each, filter, map"
  • Use the 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"
  • Use the 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"
  • Use the template argument to pass the file path pattern used to match template files to precompile
lodash template="./*.jst"
  • Use the settings argument to pass the template settings used when precompiling templates
lodash settings="{interpolate:/\\{\\{([\\s\\S]+?)\\}\\}/g}"

All arguments, except legacy with csp or mobile, 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 debug output
  • -h, --help         Display help information
  • -m, --minify     Write only the minified output
  • -o, --output     Write output to a given path/filename
  • -s, --silent     Skip status updates normally logged to the console
  • -V, --version   Output current version of Lo-Dash

The lodash command-line utility is available when Lo-Dash is installed as a global package (i.e. npm install -g lodash).

Installation and usage

In browsers:

<script src="lodash.js"></script>

Using npm:

npm install lodash
npm install -g lodash

In Node.js and RingoJS v0.8.0+:

var _ = require('lodash');

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

  • Add AMD loader support [#431, test]
  • Allow iteration of objects with a length property [#799, test]
  • Ensure “Collections” methods allow string collection arguments [#247, #276, #561, test]
  • Fix cross-browser object iteration bugs [#60, #376, test]
  • Methods should work on pages with incorrectly shimmed native methods [#7, #742, test]
  • _.clone should allow deep cloning [#595, test]
  • _.contains should work with strings [#667, test]
  • _.extend should recursively extend objects [#379, #718, test]
  • _.forEach should be chainable [#142, test]
  • _.forEach should allow exiting iteration early [#211, test]
  • _.isEmpty should support jQuery/MooTools DOM query collections [#690, test]
  • _.isObject should avoid V8 bug #2291 [#605, test]
  • _.keys should work with arguments objects cross-browser [#396, test]
  • _.range should coerce arguments to numbers [#634, #683, test]
  • _.throttle should work when called in a loop [#502, test]

Optimized methods (50+)

  • _.bind
  • _.bindAll
  • _.compact
  • _.contains, _.include
  • _.defaults
  • _.difference
  • _.each
  • _.every, _.all
  • _.extend
  • _.filter, _.select
  • _.find, _.detect
  • _.flatten
  • _.forEach, _.each
  • _.functions, _.methods
  • _.groupBy
  • _.indexOf
  • _.intersection
  • _.invert
  • _.invoke
  • _.isArguments
  • _.isDate
  • _.isFinite
  • _.isFunction
  • _.isObject
  • _.isNumber
  • _.isRegExp
  • _.isString
  • _.keys
  • _.lastIndexOf
  • _.map, _.collect
  • _.max
  • _.memoize
  • _.min
  • _.mixin
  • _.omit
  • _.pairs
  • _.pick
  • _.pluck
  • _.reduce, _.foldl, _.inject
  • _.reject
  • _.result
  • _.shuffle
  • _.some, _.any
  • _.sortBy
  • _.sortedIndex
  • _.template
  • _.throttle
  • _.toArray
  • _.union
  • _.uniq, _.unique
  • _.values
  • _.where
  • _.without
  • _.wrap
  • _.zip
  • plus all _(…) method wrappers

Release Notes

v0.8.0

Compatibility Warnings
  • Made _.random return 0 or 1 when no arguments are passed
  • Moved late bind functionality from _.bind to _.lateBind
  • Removed first argument falsey checks from methods
  • Removed support for custom clone, isEqual, toArray methods from
    _.clone, _.isEqual, and _.toArray
Changes
  • Added -d/--debug, -m/--minify, minus, plus, settings, and template build options
  • Added _.isPlainObject and _.lateBind
  • Allowed _.sortedIndex to accept a property name as the callback argument
  • Ensured methods accept a thisArg of null
  • Fixed the iife build option to accept more values
  • Made _.times return an array of callback results
  • Simplified _.max, _.min, and _.reduceRight

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

Contributors

Keywords

FAQs

Last updated on 02 Oct 2012

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc