- Spec files
npm-lodash
Describes: pkg:npm/lodash@4.2.x
- Description
- A modern JavaScript utility library delivering modularity, performance & extras.
- Author
- tessl
- Last updated
index.md docs/
1# Lodash23Lodash is a modern JavaScript utility library delivering modularity, performance & extras. It provides utility functions for common programming tasks using a functional programming paradigm with over 290 utility functions.45## Package Information67- **Package Name**: lodash8- **Package Type**: npm9- **Language**: JavaScript10- **Installation**: `npm install lodash`1112## Core Imports1314```javascript15// Full library import16const _ = require('lodash');1718// Individual function imports19const { map, filter, reduce } = require('lodash');20```2122ES6 modules:2324```javascript25// Full library import26import _ from 'lodash';2728// Individual function imports29import { map, filter, reduce } from 'lodash';3031// Method categories32import * as array from 'lodash/array';33import * as object from 'lodash/object';34```3536## Basic Usage3738```javascript39const _ = require('lodash');4041// Array operations42const numbers = [1, 2, 3, 4, 5];43const doubled = _.map(numbers, n => n * 2);44// => [2, 4, 6, 8, 10]4546// Object manipulation47const users = [48{ user: 'barney', age: 36, active: true },49{ user: 'fred', age: 40, active: false }50];51const activeUsers = _.filter(users, { active: true });52// => [{ user: 'barney', age: 36, active: true }]5354// Function utilities55const greet = _.template('Hello <%= name %>!');56const greeting = greet({ name: 'World' });57// => 'Hello World!'5859// Chaining60const result = _(users)61.filter({ active: true })62.map('user')63.value();64// => ['barney']65```6667## Architecture6869Lodash is organized around several key design principles:7071- **Functional Programming**: Pure functions without side effects where possible72- **Immutability**: Functions generally don't mutate input data (with exceptions like `_.assign`)73- **Chainable Interface**: Fluent API allowing method chaining with `_()` wrapper74- **Modular Design**: Functions can be imported individually to reduce bundle size75- **Performance Optimized**: Highly optimized implementations with internal caching76- **Cross-Platform**: Works in browsers, Node.js, and other JavaScript environments7778## Capabilities7980### Array Functions8182Utilities for manipulating arrays including iteration, filtering, transformation, and set operations.8384```javascript { .api }85// Key array functions86function chunk(array, size);87function compact(array);88function concat(array, ...values);89function difference(array, ...values);90function drop(array, n);91function fill(array, value, start, end);92function filter(collection, predicate);93function find(collection, predicate, fromIndex);94function findIndex(array, predicate, fromIndex);95function first(array); // alias: head96function flatten(array);97function flattenDeep(array);98function indexOf(array, value, fromIndex);99function initial(array);100function intersection(...arrays);101function join(array, separator);102function last(array);103function map(collection, iteratee);104function pull(array, ...values);105function pullAll(array, values);106function remove(array, predicate);107function reverse(array);108function slice(array, start, end);109function sortBy(collection, iteratees);110function tail(array);111function take(array, n);112function union(...arrays);113function uniq(array);114function without(array, ...values);115function zip(...arrays);116```117118[Array Functions](./array.md)119120### Object Functions121122Utilities for working with objects including property access, manipulation, and transformation.123124```javascript { .api }125// Key object functions126function assign(object, ...sources);127function assignIn(object, ...sources); // alias: extend128function at(object, paths);129function create(object, properties);130function defaults(object, ...sources);131function findKey(object, predicate);132function forIn(object, iteratee);133function forOwn(object, iteratee);134function functions(object);135function get(object, path, defaultValue);136function has(object, path);137function hasIn(object, path);138function invert(object);139function invoke(object, path, ...args);140function keys(object);141function mapKeys(object, iteratee);142function mapValues(object, iteratee);143function merge(object, ...sources);144function omit(object, paths);145function pick(object, paths);146function result(object, path, defaultValue);147function set(object, path, value);148function transform(object, iteratee, accumulator);149function unset(object, path);150function values(object);151```152153[Object Functions](./object.md)154155### Collection Functions156157Utilities for working with arrays and objects as collections, including iteration, searching, and grouping.158159```javascript { .api }160// Key collection functions161function countBy(collection, iteratee);162function each(collection, iteratee); // alias: forEach163function every(collection, predicate);164function groupBy(collection, iteratee);165function includes(collection, value, fromIndex);166function invokeMap(collection, path, ...args);167function keyBy(collection, iteratee);168function orderBy(collection, iteratees, orders);169function partition(collection, predicate);170function reduce(collection, iteratee, accumulator);171function reduceRight(collection, iteratee, accumulator);172function reject(collection, predicate);173function sample(collection);174function sampleSize(collection, n);175function shuffle(collection);176function size(collection);177function some(collection, predicate);178function sortBy(collection, iteratees);179```180181[Collection Functions](./collection.md)182183### Function Functions184185Utilities for function composition, currying, throttling, and other functional programming patterns.186187```javascript { .api }188// Key function utilities189function after(n, func);190function ary(func, n);191function before(n, func);192function bind(func, thisArg, ...partials);193function bindKey(object, key, ...partials);194function curry(func, arity);195function curryRight(func, arity);196function debounce(func, wait, options);197function defer(func, ...args);198function delay(func, wait, ...args);199function flip(func);200function memoize(func, resolver);201function negate(predicate);202function once(func);203function partial(func, ...partials);204function partialRight(func, ...partials);205function rearg(func, indexes);206function rest(func, start);207function spread(func, start);208function throttle(func, wait, options);209function unary(func);210function wrap(value, wrapper);211```212213[Function Functions](./function.md)214215### String Functions216217Utilities for string manipulation including case conversion, padding, templating, and parsing.218219```javascript { .api }220// Key string functions221function camelCase(string);222function capitalize(string);223function deburr(string);224function endsWith(string, target, position);225function escape(string);226function escapeRegExp(string);227function kebabCase(string);228function lowerCase(string);229function lowerFirst(string);230function pad(string, length, chars);231function padEnd(string, length, chars);232function padStart(string, length, chars);233function parseInt(string, radix);234function repeat(string, n);235function replace(string, pattern, replacement);236function snakeCase(string);237function split(string, separator, limit);238function startCase(string);239function startsWith(string, target, position);240function template(string, options);241function toLower(string);242function toUpper(string);243function trim(string, chars);244function trimEnd(string, chars);245function trimStart(string, chars);246function truncate(string, options);247function unescape(string);248function upperCase(string);249function upperFirst(string);250function words(string, pattern);251```252253[String Functions](./string.md)254255### Number Functions256257Utilities for mathematical operations, number validation, and formatting.258259```javascript { .api }260// Key number functions261function add(augend, addend);262function ceil(number, precision);263function clamp(number, lower, upper);264function divide(dividend, divisor);265function floor(number, precision);266function inRange(number, start, end);267function max(array);268function maxBy(array, iteratee);269function mean(array);270function min(array);271function minBy(array, iteratee);272function multiply(multiplier, multiplicand);273function random(lower, upper, floating);274function round(number, precision);275function subtract(minuend, subtrahend);276function sum(array);277function sumBy(array, iteratee);278```279280[Number Functions](./number.md)281282### Type Checking Functions283284Utilities for runtime type checking and validation.285286```javascript { .api }287// Key type checking functions288function isArguments(value);289function isArray(value);290function isArrayLike(value);291function isArrayLikeObject(value);292function isBoolean(value);293function isDate(value);294function isElement(value);295function isEmpty(value);296function isEqual(value, other);297function isEqualWith(value, other, customizer);298function isError(value);299function isFinite(value);300function isFunction(value);301function isInteger(value);302function isLength(value);303function isMatch(object, source);304function isMatchWith(object, source, customizer);305function isNaN(value);306function isNative(value);307function isNil(value);308function isNull(value);309function isNumber(value);310function isObject(value);311function isObjectLike(value);312function isPlainObject(value);313function isRegExp(value);314function isSafeInteger(value);315function isString(value);316function isSymbol(value);317function isTypedArray(value);318function isUndefined(value);319```320321[Type Functions](./type.md)322323### Utility Functions324325General utility functions including templating, identity, uniqueId generation, and more.326327```javascript { .api }328// Key utility functions329function attempt(func, ...args);330function cond(pairs);331function conforms(source);332function constant(value);333function flow(...funcs);334function flowRight(...funcs);335function identity(value);336function iteratee(func);337function matches(source);338function matchesProperty(path, srcValue);339function method(path, ...args);340function methodOf(object, ...args);341function mixin(object, source, options);342function noConflict();343function noop();344function nthArg(n);345function over(...iteratees);346function overArgs(func, ...transforms);347function overEvery(...predicates);348function overSome(...predicates);349function property(path);350function propertyOf(object);351function range(start, end, step);352function rangeRight(start, end, step);353function runInContext(context);354function stubArray();355function stubFalse();356function stubObject();357function stubString();358function stubTrue();359function times(n, iteratee);360function toPath(value);361function uniqueId(prefix);362```363364[Utility Functions](./utility.md)365366## Types367368```javascript { .api }369// Lodash wrapper for chaining370interface LodashWrapper<T> {371value(): T;372valueOf(): T;373commit(): LodashWrapper<T>;374next(): { done: boolean, value: T };375plant(value: any): LodashWrapper<any>;376reverse(): LodashWrapper<T>;377toJSON(): T;378toString(): string;379}380381// Template options382interface TemplateOptions {383escape?: RegExp;384evaluate?: RegExp;385imports?: object;386interpolate?: RegExp;387sourceURL?: string;388variable?: string;389}390391// Debounce/Throttle options392interface DebounceSettings {393leading?: boolean;394maxWait?: number;395trailing?: boolean;396}397398// Truncate options399interface TruncateOptions {400length?: number;401omission?: string;402separator?: string | RegExp;403}404```