GithubHelp home page GithubHelp logo

nazt-001 / lodash Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lodash/lodash

0.0 1.0 0.0 9.14 MB

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

Home Page: http://lodash.com/

License: Other

lodash's Introduction

Lo-Dash v0.4.2

A drop-in replacement* for Underscore.js, from the devs behind jsPerf.com, that delivers performance improvements, 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-20, Firefox 1.5-13, IE 6-9, Opera 9.25-12, Safari 3.0.4-5.1.7, Node.js 0.4.8-0.8.2, Narwhal 0.3.2, RingoJS 0.8, and Rhino 1.7RC3.

Custom builds

Custom builds make it easy to create lightweight versions of Lo-Dash containing only the methods you need. We handle all the method dependency and alias mapping for you.

  • Backbone builds, containing all methods required by Backbone, may be created using the backbone modifier argument.
lodash backbone
  • 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

Custom builds may be created in three ways:

  1. Use the category argument to pass the categories of methods to include in the build.
    Valid categories are "arrays", "chaining", "collections", "functions", "objects", and "utilities".
lodash category=collections,functions
lodash category="collections, functions"
  1. Use the exclude argument to pass the names of methods to exclude from the build.
lodash exclude=union,uniq,zip
lodash exclude="union, uniq, zip"
  1. Use the include argument to pass the names of methods to include in the build.
lodash include=each,filter,map
lodash include="each, filter, map"

All arguments, except exclude with include and legacy with mobile, may be combined.

lodash backbone legacy category=utilities exclude=first,last
lodash backbone mobile strict category=functions include=pick,uniq

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

Custom builds are saved to lodash.custom.js and lodash.custom.min.js.

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 Narwhal and 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);
});

Closed Underscore.js issues (20+)

  • Allow iteration of objects with a length property [#148, #154, #252, #448, #659, test]
  • Ensure array-like objects with invalid length properties are treated like regular objects [test, test, test]
  • Ensure "Arrays" methods allow falsey array arguments [test]
  • Ensure "Collections" methods allow string collection arguments [#247, #276, #561, test, test, test, test]
  • Ensure templates compiled with errors are inspectable [#666, test]
  • Fix cross-browser object iteration bugs [#376, test, test, test, test, test, test]
  • Handle arrays with undefined values correctly in IE < 9 [#601]
  • Methods should work on pages with incorrectly shimmed native methods [#7, test]
  • Register as an AMD module, but still export to global [#431, test]
  • _(…) should return passed wrapper instances [test]
  • _.contains should work with strings [#667, test]
  • _.escape should return an empty string when passed null or undefined [#407, test]
  • _.forEach should be chainable [#142, test]
  • _.groupBy should add values to own, not inherited, properties [test]
  • _isNaN(new Number(NaN)) should return true [test]
  • _.reduceRight should pass correct callback arguments when iterating objects [test]
  • _.size should return the length of string values [test]
  • _.size shouldn't error on falsey values [#650, test]
  • _.size should work with arguments objects cross-browser [#653, test]
  • _.sortedIndex should support arrays with high length values [test]
  • _.template should not augment the options object [test]
  • _.throttle should work when called in a loop [#502, test]
  • _.zipObject should accept less than two arguments [test]

Optimized methods (50+)

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

Release Notes

v0.4.2

  • Added strict build
  • Ensured _.bindAll, _.defaults, and _.extend avoid strict mode errors when attempting to augment read-only properties
  • Optimized the iteration of large arrays in _.difference, _.intersection, and _.without
  • Fixed build bugs related to removing variables

v0.4.1

  • Fixed _.template regression
  • Optimized build process to detect and remove more unused variables

v0.4.0

  • Added bin and scripts entries to package.json
  • Added legacy build option
  • Added cross-browser support for passing strings to "Collections" methods
  • Added _.zipObject
  • Leveraged _.indexOf's fromIndex in _.difference and _.without
  • Optimized compiled templates
  • Optimized inlining the iteratorTemplate for builds
  • Optimized object iteration for "Collections" methods
  • Optimized partially applied _.bind in V8
  • Made compiled templates more debuggable
  • Made _.size work with falsey values and consistent cross-browser with arguments objects
  • Moved _.groupBy and _.sortBy back to the "Collections" category
  • Removed arguments object from _.range

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

lodash's People

Contributors

jashkenas avatar jdalton avatar braddunbar avatar ratbeard avatar ryantenney avatar octatone avatar samuelclay avatar iamnoah avatar michaelficarra avatar adamcraven avatar jasondavies avatar tombyrer avatar lifesinger avatar kriskowal avatar jrburke avatar rfletcher avatar kishanov avatar dmitrybaranovskiy avatar aseemk avatar bjh avatar tonylukasavage avatar stuk avatar yuchi avatar maw avatar mathiasbynens avatar mark-rushakoff avatar jeffamcgee avatar chaoflow avatar mcmire avatar brianhaveri avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.