_(value)
Creates a lodash
object which wraps value
to enable implicit method chain sequences. Methods that operate on and return arrays, collections, and functions can be chained together. Methods that retrieve a single value or may return a primitive value will automatically end the chain sequence and return the unwrapped value. Otherwise, the value must be unwrapped with #value
.Explicit chain sequences, which must be unwrapped with #value
, may be enabled using _.chain
.The execution of chained methods is lazy, that is, it's deferred until #value
is implicitly or explicitly called.Lazy evaluation allows several methods to support shortcut fusion. Shortcut fusion is an optimization to merge iteratee calls; this avoids the creation of intermediate arrays and can greatly reduce the number of iteratee executions. Sections of a chain sequence qualify for shortcut fusion if the section is applied to an array and iteratees accept only one argument. The heuristic for whether a section qualifies for shortcut fusion is subject to change.Chaining is supported in custom builds as long as the #value
method is directly or indirectly included in the build.In addition to lodash methods, wrappers have Array
and String
methods.The wrapper Array
methods are:concat
, join
, pop
, push
, shift
, sort
, splice
, and unshift
The wrapper String
methods are:replace
and split
The wrapper methods that support shortcut fusion are:at
, compact
, drop
, dropRight
, dropWhile
, filter
, find
, findLast
, head
, initial
, last
, map
, reject
, reverse
, slice
, tail
, take
, takeRight
, takeRightWhile
, takeWhile
, and toArray
The chainable wrapper methods are:after
, ary
, assign
, assignIn
, assignInWith
, assignWith
, at
, before
, bind
, bindAll
, bindKey
, castArray
, chain
, chunk
, commit
, compact
, concat
, conforms
, constant
, countBy
, create
, curry
, debounce
, defaults
, defaultsDeep
, defer
, delay
, difference
, differenceBy
, differenceWith
, drop
, dropRight
, dropRightWhile
, dropWhile
, extend
, extendWith
, fill
, filter
, flatMap
, flatMapDeep
, flatMapDepth
, flatten
, flattenDeep
, flattenDepth
, flip
, flow
, flowRight
, fromPairs
, functions
, functionsIn
, groupBy
, initial
, intersection
, intersectionBy
, intersectionWith
, invert
, invertBy
, invokeMap
, iteratee
, keyBy
, keys
, keysIn
, map
, mapKeys
, mapValues
, matches
, matchesProperty
, memoize
, merge
, mergeWith
, method
, methodOf
, mixin
, negate
, nthArg
, omit
, omitBy
, once
, orderBy
, over
, overArgs
, overEvery
, overSome
, partial
, partialRight
, partition
, pick
, pickBy
, plant
, property
, propertyOf
, pull
, pullAll
, pullAllBy
, pullAllWith
, pullAt
, push
, range
, rangeRight
, rearg
, reject
, remove
, rest
, reverse
, sampleSize
, set
, setWith
, shuffle
, slice
, sort
, sortBy
, splice
, spread
, tail
, take
, takeRight
, takeRightWhile
, takeWhile
, tap
, throttle
, thru
, toArray
, toPairs
, toPairsIn
, toPath
, toPlainObject
, transform
, unary
, union
, unionBy
, unionWith
, uniq
, uniqBy
, uniqWith
, unset
, unshift
, unzip
, unzipWith
, update
, updateWith
, values
, valuesIn
, without
, wrap
, xor
, xorBy
, xorWith
, zip
, zipObject
, zipObjectDeep
, and zipWith
The wrapper methods that are not chainable by default are:add
, attempt
, camelCase
, capitalize
, ceil
, clamp
, clone
, cloneDeep
, cloneDeepWith
, cloneWith
, conformsTo
, deburr
, defaultTo
, divide
, each
, eachRight
, endsWith
, eq
, escape
, escapeRegExp
, every
, find
, findIndex
, findKey
, findLast
, findLastIndex
, findLastKey
, first
, floor
, forEach
, forEachRight
, forIn
, forInRight
, forOwn
, forOwnRight
, get
, gt
, gte
, has
, hasIn
, head
, identity
, includes
, indexOf
, inRange
, invoke
, isArguments
, isArray
, isArrayBuffer
, isArrayLike
, isArrayLikeObject
, isBoolean
, isBuffer
, isDate
, isElement
, isEmpty
, isEqual
, isEqualWith
, isError
, isFinite
, isFunction
, isInteger
, isLength
, isMap
, isMatch
, isMatchWith
, isNaN
, isNative
, isNil
, isNull
, isNumber
, isObject
, isObjectLike
, isPlainObject
, isRegExp
, isSafeInteger
, isSet
, isString
, isUndefined
, isTypedArray
, isWeakMap
, isWeakSet
, join
, kebabCase
, last
, lastIndexOf
, lowerCase
, lowerFirst
, lt
, lte
, max
, maxBy
, mean
, meanBy
, min
, minBy
, multiply
, noConflict
, noop
, now
, nth
, pad
, padEnd
, padStart
, parseInt
, pop
, random
, reduce
, reduceRight
, repeat
, result
, round
, runInContext
, sample
, shift
, size
, snakeCase
, some
, sortedIndex
, sortedIndexBy
, sortedLastIndex
, sortedLastIndexBy
, startCase
, startsWith
, stubArray
, stubFalse
, stubObject
, stubString
, stubTrue
, subtract
, sum
, sumBy
, template
, times
, toFinite
, toInteger
, toJSON
, toLength
, toLower
, toNumber
, toSafeInteger
, toString
, toUpper
, trim
, trimEnd
, trimStart
, truncate
, unescape
, uniqueId
, upperCase
, upperFirst
, value
, and words
Arguments
value
(*): The value to wrap in alodash
instance.
Returns
(Object): Returns the new lodash
wrapper instance.
Example
function square(n) {return n * n;}var wrapped = _([1, 2, 3]);// Returns an unwrapped value.wrapped.reduce(_.add);// => 6// Returns a wrapped value.var squares = wrapped.map(square);_.isArray(squares);// => false_.isArray(squares.value());// => true