diff --git a/.markdown-doctest-setup.js b/.markdown-doctest-setup.js
index d5fb204d27..fc16ea65ec 100644
--- a/.markdown-doctest-setup.js
+++ b/.markdown-doctest-setup.js
@@ -2,47 +2,10 @@
delete global['__core-js_shared__'];
-var _ = require('./lodash.js');
-
-function mockQuery() {
- return {
- 'on': function(eventName, callback) {
- callback();
- }
- };
-}
-
-mockQuery.each = _.each;
+var _ = require('./lodash.js'),
+ globals = require('lodash-doc-globals');
module.exports = {
'babel': false,
- 'globals': {
- '_': _,
-
- // Example mocks.
- 'asyncSave': _.noop,
- 'addContactToList': _.noop,
- 'batchLog': _.noop,
- 'calculateLayout': _.noop,
- 'createApplication': _.noop,
- 'data': { 'user': 'mock' },
- 'mainText': '',
- 'renewToken': _.noop,
- 'sendMail': _.noop,
- 'updatePosition': _.noop,
-
- // DOM mocks.
- 'document': { 'body': { 'childNodes': [], 'nodeName': 'BODY' } },
- 'element': {},
- 'EventSource': _.noop,
- 'jQuery': mockQuery,
- 'window': {},
-
- // Node.js mocks.
- 'Buffer': Buffer,
- 'fs': { 'writeFileSync': _.noop },
- 'path': require('path'),
- 'process': process,
- 'setImmediate': setImmediate
- }
+ 'globals': _.assign({ '_': _ }, globals)
};
diff --git a/.travis.yml b/.travis.yml
index 476e2e202f..3a63ba3ad4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,6 +2,10 @@ language: node_js
sudo: false
node_js:
- "6"
+cache:
+ directories:
+ - node_modules
+ - travis_phantomjs
env:
global:
- BIN="node" ISTANBUL=false OPTION=""
@@ -34,6 +38,12 @@ notifications:
on_success: change
on_failure: always
before_install:
+ - "export PHANTOMJS_VERSION=2.1.1"
+ - "export PATH=$PWD/travis_phantomjs/phantomjs-$PHANTOMJS_VERSION-linux-x86_64/bin:$PATH"
+ - "if [ $(phantomjs --version) != $PHANTOMJS_VERSION ]; then rm -rf $PWD/travis_phantomjs; mkdir -p $PWD/travis_phantomjs; fi"
+ - "if [ $(phantomjs --version) != $PHANTOMJS_VERSION ]; then wget https://github.com/Medium/phantomjs/releases/download/v$PHANTOMJS_VERSION/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 -O $PWD/travis_phantomjs/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2; fi"
+ - "if [ $(phantomjs --version) != $PHANTOMJS_VERSION ]; then tar -xvf $PWD/travis_phantomjs/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs; fi"
+ - "phantomjs --version"
- "nvm use $TRAVIS_NODE_VERSION"
- "npm set loglevel error"
- "npm set progress false"
@@ -55,6 +65,7 @@ before_install:
node ./test/remove.js "$PTRN" ./lodash.js
done
fi
+ - "rm -rf ./node_modules/lodash-cli"
- "git clone --depth=10 --branch=master git://github.com/lodash/lodash-cli ./node_modules/lodash-cli"
- "mkdir -p ./node_modules/lodash-cli/node_modules/lodash && cd $_ && cp ../../../../lodash.js ./lodash.js && cp ../../../../package.json ./package.json"
- "cd ../../ && npm i && cd ../../"
@@ -64,7 +75,7 @@ script:
- "[ $ISTANBUL == false ] || istanbul cover -x \"**/vendor/**\" --report lcovonly ./test/test.js -- ./lodash.js"
- "[ $ISTANBUL == false ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || (cat ./coverage/lcov.info | coveralls) || true"
- "[ $ISTANBUL == false ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || (cat ./coverage/coverage.json | codecov) || true"
-
+
# Test in Node.js and PhantomJS.
- "[ $ISTANBUL == true ] || node ./node_modules/lodash-cli/bin/lodash -o ./dist/lodash.js"
- "[ $ISTANBUL == true ] || (node ./node_modules/lodash-cli/bin/lodash modularize exports=node -o ./ && node ./node_modules/lodash-cli/bin/lodash -d -o ./lodash.js)"
diff --git a/README.md b/README.md
index 6e5a1d2ddc..075f89d4ac 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# lodash v4.14.1
+# lodash v4.14.2
[Site](https://lodash.com/) |
[Docs](https://lodash.com/docs) |
@@ -20,11 +20,11 @@ $ lodash core -o ./dist/lodash.core.js
## Download
-Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.14.1/LICENSE) & supports [modern environments](#support).
+Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.14.2/LICENSE) & supports [modern environments](#support).
Review the [build differences](https://github.com/lodash/lodash/wiki/build-differences) & pick one that’s right for you.
- * [Core build](https://raw.githubusercontent.com/lodash/lodash/4.14.1/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.14.1/dist/lodash.core.min.js))
- * [Full build](https://raw.githubusercontent.com/lodash/lodash/4.14.1/dist/lodash.js) ([~22 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.14.1/dist/lodash.min.js))
+ * [Core build](https://raw.githubusercontent.com/lodash/lodash/4.14.2/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.14.2/dist/lodash.core.min.js))
+ * [Full build](https://raw.githubusercontent.com/lodash/lodash/4.14.2/dist/lodash.js) ([~22 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.14.2/dist/lodash.min.js))
* [CDN copies](https://www.jsdelivr.com/projects/lodash)
## Why Lodash?
diff --git a/dist/lodash.core.js b/dist/lodash.core.js
index 99f6f66fc7..f3b42c57ee 100644
--- a/dist/lodash.core.js
+++ b/dist/lodash.core.js
@@ -13,7 +13,7 @@
var undefined;
/** Used as the semantic version number. */
- var VERSION = '4.14.1';
+ var VERSION = '4.14.2';
/** Used as the `TypeError` message for "Functions" methods. */
var FUNC_ERROR_TEXT = 'Expected a function';
@@ -195,7 +195,7 @@
}
/**
- * Creates a function that invokes `func` with its first argument transformed.
+ * Creates a unary function that invokes `func` with its argument transformed.
*
* @private
* @param {Function} func The function to wrap.
@@ -222,7 +222,7 @@
/**
* Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
@@ -236,7 +236,7 @@
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeIsFinite = root.isFinite,
- nativeKeys = Object.keys,
+ nativeKeys = overArg(Object.keys, Object),
nativeMax = Math.max;
/*------------------------------------------------------------------------*/
@@ -402,7 +402,7 @@
/**
* Assigns `value` to `key` of `object` if the existing value is not equivalent
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons.
*
* @private
@@ -438,7 +438,7 @@
* @param {Function} func The function to delay.
* @param {number} wait The number of milliseconds to delay invocation.
* @param {Array} args The arguments to provide to `func`.
- * @returns {number} Returns the timer id.
+ * @returns {number|Object} Returns the timer id or timeout object.
*/
function baseDelay(func, wait, args) {
if (typeof func != 'function') {
@@ -746,34 +746,6 @@
return (typeof func == 'object' ? baseMatches : baseProperty)(func);
}
- /**
- * The base implementation of `_.keys` which doesn't skip the constructor
- * property of prototypes or treat sparse arrays as dense.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- */
- var baseKeys = overArg(nativeKeys, Object);
-
- /**
- * The base implementation of `_.keysIn` which doesn't skip the constructor
- * property of prototypes or treat sparse arrays as dense.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- */
- function baseKeysIn(object) {
- object = object == null ? object : Object(object);
-
- var result = [];
- for (var key in object) {
- result.push(key);
- }
- return result;
- }
-
/**
* The base implementation of `_.lt` which doesn't coerce arguments.
*
@@ -813,7 +785,7 @@
* @returns {Function} Returns the new spec function.
*/
function baseMatches(source) {
- var props = keys(source);
+ var props = nativeKeys(source);
return function(object) {
var length = props.length;
if (object == null) {
@@ -1116,7 +1088,7 @@
function createCtor(Ctor) {
return function() {
// Use a `switch` statement to work with class constructors. See
- // http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
+ // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
// for more details.
var args = arguments;
var thisBinding = baseCreate(Ctor.prototype),
@@ -1281,7 +1253,7 @@
case regexpTag:
case stringTag:
// Coerce regexes to strings and treat strings, primitives and objects,
- // as equal. See http://www.ecma-international.org/ecma-262/6.0/#sec-regexp.prototype.tostring
+ // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
// for more details.
return object == (other + '');
@@ -1354,19 +1326,6 @@
return result;
}
- /**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a
- * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects
- * Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
- var getLength = baseProperty('length');
-
/**
* Checks if `value` is a flattenable `arguments` object or array.
*
@@ -1378,6 +1337,25 @@
return isArray(value) || isArguments(value);
}
+ /**
+ * This function is like
+ * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
+ * except that it includes inherited enumerable properties.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+ function nativeKeysIn(object) {
+ var result = [];
+ if (object != null) {
+ for (var key in Object(object)) {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
/**
* Converts `value` to a string key if it's not a string or symbol.
*
@@ -1554,7 +1532,7 @@
/**
* Gets the index at which the first occurrence of `value` is found in `array`
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons. If `fromIndex` is negative, it's used as the
* offset from the end of `array`.
*
@@ -1784,6 +1762,11 @@
* Iteration is stopped once `predicate` returns falsey. The predicate is
* invoked with three arguments: (value, index|key, collection).
*
+ * **Note:** This method returns `true` for
+ * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because
+ * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
+ * elements of empty collections.
+ *
* @static
* @memberOf _
* @since 0.1.0
@@ -2048,7 +2031,7 @@
if (collection == null) {
return 0;
}
- collection = isArrayLike(collection) ? collection : keys(collection);
+ collection = isArrayLike(collection) ? collection : nativeKeys(collection);
return collection.length;
}
@@ -2342,12 +2325,12 @@
if (!isObject(value)) {
return value;
}
- return isArray(value) ? copyArray(value) : copyObject(value, keys(value));
+ return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value));
}
/**
* Performs a
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* comparison between two values to determine if they are equivalent.
*
* @static
@@ -2456,7 +2439,7 @@
* // => false
*/
function isArrayLike(value) {
- return value != null && isLength(getLength(value)) && !isFunction(value);
+ return value != null && isLength(value.length) && !isFunction(value);
}
/**
@@ -2568,7 +2551,7 @@
isFunction(value.splice) || isArguments(value))) {
return !value.length;
}
- return !keys(value).length;
+ return !nativeKeys(value).length;
}
/**
@@ -2587,8 +2570,7 @@
* @category Lang
* @param {*} value The value to compare.
* @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent,
- * else `false`.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
* @example
*
* var object = { 'a': 1 };
@@ -2615,8 +2597,7 @@
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a finite number,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.
* @example
*
* _.isFinite(3);
@@ -2663,16 +2644,15 @@
/**
* Checks if `value` is a valid array-like length.
*
- * **Note:** This function is loosely based on
- * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ * **Note:** This method is loosely based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
* @example
*
* _.isLength(3);
@@ -2694,7 +2674,7 @@
/**
* Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
*
* @static
@@ -2933,7 +2913,7 @@
* Converts `value` to an integer.
*
* **Note:** This method is loosely based on
- * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
*
* @static
* @memberOf _
@@ -3045,7 +3025,7 @@
* // => { 'a': 1, 'c': 3 }
*/
var assign = createAssigner(function(object, source) {
- copyObject(source, keys(source), object);
+ copyObject(source, nativeKeys(source), object);
});
/**
@@ -3080,7 +3060,7 @@
* // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
*/
var assignIn = createAssigner(function(object, source) {
- copyObject(source, keysIn(source), object);
+ copyObject(source, nativeKeysIn(source), object);
});
/**
@@ -3216,7 +3196,7 @@
* Creates an array of the own enumerable property names of `object`.
*
* **Note:** Non-object values are coerced to objects. See the
- * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
+ * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
* for more details.
*
* @static
@@ -3240,7 +3220,7 @@
* _.keys('hi');
* // => ['0', '1']
*/
- var keys = baseKeys;
+ var keys = nativeKeys;
/**
* Creates an array of the own and inherited enumerable property names of `object`.
@@ -3265,7 +3245,7 @@
* _.keysIn(new Foo);
* // => ['a', 'b', 'c'] (iteration order is not guaranteed)
*/
- var keysIn = baseKeysIn;
+ var keysIn = nativeKeysIn;
/**
* Creates an object composed of the picked `object` properties.
@@ -3469,8 +3449,12 @@
* object and `source`, returning `true` if the given object has equivalent
* property values, else `false`.
*
- * **Note:** The created function supports comparing the same values as
- * `_.isEqual` is equivalent to `_.isMatch` with `source` partially applied.
+ * **Note:** The created function is equivalent to `_.isMatch` with `source`
+ * partially applied.
+ *
+ * Partial comparisons will match empty array and empty object `source`
+ * values against any array or object value, respectively. See `_.isEqual`
+ * for a list of supported value comparisons.
*
* @static
* @memberOf _
diff --git a/dist/lodash.core.min.js b/dist/lodash.core.min.js
index 3336ee8d3b..39b38ecc42 100644
--- a/dist/lodash.core.min.js
+++ b/dist/lodash.core.min.js
@@ -3,26 +3,26 @@
* lodash (Custom Build) /license | Underscore.js 1.8.3 underscorejs.org/LICENSE
* Build: `lodash core -o ./dist/lodash.core.js`
*/
-;(function(){function n(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function t(n,t){return n.push.apply(n,t),n}function r(n){return function(t){return null==t?Z:t[n]}}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return m(t,function(t){return n[t]})}function o(n){return n instanceof i?n:new i(n)}function i(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function c(n,t,r,e){return n===Z||J(n,an[r])&&!ln.call(e,r)?t:n;
-}function f(n){return V(n)?vn(n):{}}function a(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(Z,r)},t)}function l(n,t){var r=true;return jn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function p(n,t,r){for(var e=-1,u=n.length;++et}function g(n,t,r,e,u){return n===t||(null==n||null==t||!V(n)&&!H(t)?n!==n&&t!==t:_(n,t,g,r,e,u))}function _(n,t,r,e,u,o){var i=kn(n),c=kn(t),f="[object Array]",a="[object Array]";i||(f=sn.call(n),f="[object Arguments]"==f?"[object Object]":f),c||(a=sn.call(t),a="[object Arguments]"==a?"[object Object]":a);
-var l="[object Object]"==f&&true,c="[object Object]"==a&&true,a=f==a;o||(o=[]);var p=An(o,function(t){return t[0]==n}),s=An(o,function(n){return n[0]==t});if(p&&s)return p[1]==t;if(o.push([n,t]),o.push([t,n]),a&&!l){if(i)r=R(n,t,r,e,u,o);else n:{switch(f){case"[object Boolean]":case"[object Date]":case"[object Number]":r=J(+n,+t);break n;case"[object Error]":r=n.name==t.name&&n.message==t.message;break n;case"[object RegExp]":case"[object String]":r=n==t+"";break n}r=false}return o.pop(),r}return 2&u||(i=l&&ln.call(n,"__wrapped__"),
-f=c&&ln.call(t,"__wrapped__"),!i&&!f)?!!a&&(r=D(n,t,r,e,u,o),o.pop(),r):(i=i?n.value():n,f=f?t.value():t,r=r(i,f,e,u,o),o.pop(),r)}function j(n){return typeof n=="function"?n:null==n?X:(typeof n=="object"?O:r)(n)}function d(n,t){return nt&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++ei))return false;for(var c=-1,f=true,a=1&u?[]:Z;++cr?_n(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++rarguments.length,jn)}function G(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Nn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=Z),r}}function J(n,t){
-return n===t||n!==n&&t!==t}function M(n){return H(n)&&P(n)&&ln.call(n,"callee")&&(!bn.call(n,"callee")||"[object Arguments]"==sn.call(n))}function P(n){var t;return(t=null!=n)&&(t=On(n),t=typeof t=="number"&&-1=t),t&&!U(n)}function U(n){return n=V(n)?sn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function V(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function H(n){return!!n&&typeof n=="object"}function K(n){return typeof n=="number"||H(n)&&"[object Number]"==sn.call(n);
-}function L(n){return typeof n=="string"||!kn(n)&&H(n)&&"[object String]"==sn.call(n)}function Q(n){return typeof n=="string"?n:null==n?"":n+""}function W(n){return n?u(n,Dn(n)):[]}function X(n){return n}function Y(n,r,e){var u=Dn(r),o=b(r,u);null!=e||V(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=b(r,Dn(r)));var i=!(V(e)&&"chain"in e&&!e.chain),c=U(n);return jn(o,function(e){var u=r[e];n[e]=u,c&&(n.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=n(this.__wrapped__);return(e.__actions__=w(this.__actions__)).push({
-func:u,args:arguments,thisArg:n}),e.__chain__=r,e}return u.apply(n,t([this.value()],arguments))})}),n}var Z,nn=1/0,tn=/[&<>"'`]/g,rn=RegExp(tn.source),en=typeof self=="object"&&self&&self.Object===Object&&self,un=typeof global=="object"&&global&&global.Object===Object&&global||en||Function("return this")(),on=(en=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,cn=function(n){return function(t){return null==n?Z:n[t]}}({"&":"&",
-"<":"<",">":">",'"':""","'":"'","`":"`"}),fn=Array.prototype,an=Object.prototype,ln=an.hasOwnProperty,pn=0,sn=an.toString,hn=un._,vn=Object.create,bn=an.propertyIsEnumerable,yn=un.isFinite,gn=Object.keys,_n=Math.max;i.prototype=f(o.prototype),i.prototype.constructor=i;var jn=function(n,t){return function(r,e){if(null==r)return r;if(!P(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++or&&(r=_n(e+r,0));n:{for(t=j(t),e=n.length,r+=-1;++re||o&&c&&a||!u&&a||!i){r=1;break n}if(!o&&rt}function y(n,t,r,e,u){return n===t||(null==n||null==t||!V(n)&&!H(t)?n!==n&&t!==t:g(n,t,y,r,e,u))}function g(n,t,r,e,u,o){var i=wn(n),c=wn(t),f="[object Array]",a="[object Array]";i||(f=sn.call(n),f="[object Arguments]"==f?"[object Object]":f),c||(a=sn.call(t),a="[object Arguments]"==a?"[object Object]":a);var l="[object Object]"==f&&true,c="[object Object]"==a&&true,a=f==a;o||(o=[]);var p=On(o,function(t){return t[0]==n;
+}),s=On(o,function(n){return n[0]==t});if(p&&s)return p[1]==t;if(o.push([n,t]),o.push([t,n]),a&&!l){if(i)r=B(n,t,r,e,u,o);else n:{switch(f){case"[object Boolean]":case"[object Date]":case"[object Number]":r=J(+n,+t);break n;case"[object Error]":r=n.name==t.name&&n.message==t.message;break n;case"[object RegExp]":case"[object String]":r=n==t+"";break n}r=false}return o.pop(),r}return 2&u||(i=l&&ln.call(n,"__wrapped__"),f=c&&ln.call(t,"__wrapped__"),!i&&!f)?!!a&&(r=R(n,t,r,e,u,o),o.pop(),r):(i=i?n.value():n,
+f=f?t.value():t,r=r(i,f,e,u,o),o.pop(),r)}function _(n){return typeof n=="function"?n:null==n?X:(typeof n=="object"?m:t)(n)}function j(n,t){return nt&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++ei))return false;for(var c=-1,f=true,a=1&u?[]:Z;++cr?_n(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++rarguments.length,jn)}function G(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=kn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=Z),r}}function J(n,t){return n===t||n!==n&&t!==t}function M(n){
+return H(n)&&P(n)&&ln.call(n,"callee")&&(!bn.call(n,"callee")||"[object Arguments]"==sn.call(n))}function P(n){var t;return(t=null!=n)&&(t=n.length,t=typeof t=="number"&&-1=t),t&&!U(n)}function U(n){return n=V(n)?sn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function V(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function H(n){return!!n&&typeof n=="object"}function K(n){return typeof n=="number"||H(n)&&"[object Number]"==sn.call(n)}
+function L(n){return typeof n=="string"||!wn(n)&&H(n)&&"[object String]"==sn.call(n)}function Q(n){return typeof n=="string"?n:null==n?"":n+""}function W(n){return n?e(n,Rn(n)):[]}function X(n){return n}function Y(t,r,e){var u=Rn(r),o=v(r,u);null!=e||V(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=v(r,Rn(r)));var i=!(V(e)&&"chain"in e&&!e.chain),c=U(t);return jn(o,function(e){var u=r[e];t[e]=u,c&&(t.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=t(this.__wrapped__);return(e.__actions__=E(this.__actions__)).push({
+func:u,args:arguments,thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}var Z,nn=1/0,tn=/[&<>"'`]/g,rn=RegExp(tn.source),en=typeof self=="object"&&self&&self.Object===Object&&self,un=typeof global=="object"&&global&&global.Object===Object&&global||en||Function("return this")(),on=(en=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,cn=function(n){return function(t){return null==n?Z:n[t]}}({"&":"&",
+"<":"<",">":">",'"':""","'":"'","`":"`"}),fn=Array.prototype,an=Object.prototype,ln=an.hasOwnProperty,pn=0,sn=an.toString,hn=un._,vn=Object.create,bn=an.propertyIsEnumerable,yn=un.isFinite,gn=function(n,t){return function(r){return n(t(r))}}(Object.keys,Object),_n=Math.max;o.prototype=c(u.prototype),o.prototype.constructor=o;var jn=function(n,t){return function(r,e){if(null==r)return r;if(!P(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++or&&(r=_n(e+r,0));n:{for(t=_(t),e=n.length,r+=-1;++re||o&&c&&a||!u&&a||!i){r=1;break n}if(!o&&r1?q(e,r):e}function g(t,e,r){if(B.fixed&&(F||!u.skipFixed[t])){var n=u.methodSpread[t],i=n&&n.start;return void 0===i?M(e,r):N(e,i)}return e}function y(t,e,r){return B.rearg&&r>1&&(j||!u.skipRearg[t])?_(e,u.methodRearg[t]||u.aryRearg[r]):e}function m(t,e){e=V(e);for(var r=-1,n=e.length,i=n-1,a=z(Object(t)),o=a;null!=o&&++r1?q(e,r):e}function g(t,e,r){if(B.fixed&&(F||!u.skipFixed[t])){var n=u.methodSpread[t],i=n&&n.start;return void 0===i?M(e,r):N(e,i)}return e}function y(t,e,r){return B.rearg&&r>1&&(j||!u.skipRearg[t])?_(e,u.methodRearg[t]||u.aryRearg[r]):e}function m(t,e){e=U(e);for(var r=-1,n=e.length,i=n-1,a=z(Object(t)),o=a;null!=o&&++r2?r-2:1,a&&a<=r?n:i(n,r)):n}},mixin:function(t){return function(e){
-var r=this;if(!T(r))return t(r,Object(e));var n=[];return P(K(e),function(t){T(e[t])&&n.push([t,r.prototype[t]])}),t(r,Object(e)),P(n,function(t){var e=t[1];T(e)?r.prototype[t[0]]=e:delete r.prototype[t[0]]}),r}},rearg:function(t){return function(e,r){var n=r?r.length:0;return q(t(e,r),n)}},runInContext:function(e){return function(r){return l(t,e(r),d)}}};if(!k)return R(e,r);var H=r,J=[];return P(U,function(t){P(u.aryMethod[t],function(t){var e=H[u.remap[t]||t];e&&J.push([t,R(t,e)])})}),P(K(H),function(t){
-var e=H[t];if("function"==typeof e){for(var r=J.length;r--;)if(J[r][0]==t)return;e.convert=A(t,e),J.push([t,e])}}),P(J,function(t){H[t[0]]=t[1]}),H.convert=v,O&&(H.placeholder=L),P(K(H),function(t){P(u.realToAlias[t]||[],function(e){H[e]=H[t]})}),H}var u=r(2),p=u.mutate,f=r(3);t.exports=l},function(t,e){e.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",
-conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",
-pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},e.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],
-2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],
+keys:t.keys,rearg:t.rearg,spread:t.spread,toInteger:t.toInteger,toPath:t.toPath},M=w.ary,D=w.assign,z=w.clone,q=w.curry,P=w.forEach,S=w.isArray,T=w.isFunction,K=w.keys,_=w.rearg,N=w.spread,V=w.toInteger,U=w.toPath,G=K(u.aryMethod),H={castArray:function(t){return function(){var e=arguments[0];return S(e)?t(a(e)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var e=arguments[0],r=arguments[1],n=t(e,r),a=n.length;return B.cap&&"number"==typeof r?(r=r>2?r-2:1,a&&a<=r?n:i(n,r)):n}},
+mixin:function(t){return function(e){var r=this;if(!T(r))return t(r,Object(e));var n=[];return P(K(e),function(t){T(e[t])&&n.push([t,r.prototype[t]])}),t(r,Object(e)),P(n,function(t){var e=t[1];T(e)?r.prototype[t[0]]=e:delete r.prototype[t[0]]}),r}},nthArg:function(t){return function(e){var r=e<0?1:V(e)+1;return q(t(e),r)}},rearg:function(t){return function(e,r){var n=r?r.length:0;return q(t(e,r),n)}},runInContext:function(e){return function(r){return l(t,e(r),d)}}};if(!k)return R(e,r);var J=r,Q=[];
+return P(G,function(t){P(u.aryMethod[t],function(t){var e=J[u.remap[t]||t];e&&Q.push([t,R(t,e)])})}),P(K(J),function(t){var e=J[t];if("function"==typeof e){for(var r=Q.length;r--;)if(Q[r][0]==t)return;e.convert=A(t,e),Q.push([t,e])}}),P(Q,function(t){J[t[0]]=t[1]}),J.convert=v,O&&(J.placeholder=L),P(K(J),function(t){P(u.realToAlias[t]||[],function(e){J[e]=J[t]})}),J}var u=r(2),p=u.mutate,f=r(3);t.exports=l},function(t,e){e.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",
+extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",
+indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},
+e.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],
3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],
4:["fill","setWith","updateWith"]},e.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},e.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,
transform:2},e.iterateeRearg={mapKeys:[1]},e.methodRearg={assignInAllWith:[1,2,0],assignInWith:[1,2,0],assignAllWith:[1,2,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,2,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],
diff --git a/dist/lodash.js b/dist/lodash.js
index 22e73749bd..47e584660b 100644
--- a/dist/lodash.js
+++ b/dist/lodash.js
@@ -12,7 +12,7 @@
var undefined;
/** Used as the semantic version number. */
- var VERSION = '4.14.1';
+ var VERSION = '4.14.2';
/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;
@@ -134,7 +134,7 @@
/**
* Used to match `RegExp`
- * [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns).
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
*/
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
reHasRegExpChar = RegExp(reRegExpChar.source);
@@ -157,7 +157,7 @@
/**
* Used to match
- * [ES template delimiters](http://ecma-international.org/ecma-262/6.0/#sec-template-literal-lexical-components).
+ * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).
*/
var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
@@ -266,9 +266,9 @@
var contextProps = [
'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',
'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',
- 'Promise', 'Reflect', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError',
- 'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',
- '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'
+ 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',
+ 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', '_', 'clearTimeout',
+ 'isFinite', 'parseInt', 'setTimeout'
];
/** Used to make template sourceURLs easier to identify. */
@@ -1129,7 +1129,7 @@
}
/**
- * Creates a function that invokes `func` with its first argument transformed.
+ * Creates a unary function that invokes `func` with its argument transformed.
*
* @private
* @param {Function} func The function to wrap.
@@ -1282,7 +1282,6 @@
/** Built-in constructor references. */
var Array = context.Array,
- Date = context.Date,
Error = context.Error,
Math = context.Math,
RegExp = context.RegExp,
@@ -1316,7 +1315,7 @@
/**
* Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
@@ -1332,29 +1331,28 @@
/** Built-in value references. */
var Buffer = moduleExports ? context.Buffer : undefined,
- Reflect = context.Reflect,
Symbol = context.Symbol,
Uint8Array = context.Uint8Array,
- enumerate = Reflect ? Reflect.enumerate : undefined,
+ getPrototype = overArg(Object.getPrototypeOf, Object),
iteratorSymbol = Symbol ? Symbol.iterator : undefined,
objectCreate = context.Object.create,
propertyIsEnumerable = objectProto.propertyIsEnumerable,
splice = arrayProto.splice,
spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
- /** Built-in method references that are mockable. */
- var clearTimeout = function(id) { return context.clearTimeout.call(root, id); },
- setTimeout = function(func, wait) { return context.setTimeout.call(root, func, wait); };
+ /** Mocked built-ins. */
+ var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,
+ ctxNow = context.Date && context.Date.now !== root.Date.now && context.Date.now,
+ ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeCeil = Math.ceil,
nativeFloor = Math.floor,
- nativeGetPrototype = Object.getPrototypeOf,
nativeGetSymbols = Object.getOwnPropertySymbols,
nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
nativeIsFinite = context.isFinite,
nativeJoin = arrayProto.join,
- nativeKeys = Object.keys,
+ nativeKeys = overArg(Object.keys, Object),
nativeMax = Math.max,
nativeMin = Math.min,
nativeParseInt = context.parseInt,
@@ -2201,6 +2199,31 @@
/*------------------------------------------------------------------------*/
+ /**
+ * Creates an array of the enumerable property names of the array-like `value`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @param {boolean} inherited Specify returning inherited property names.
+ * @returns {Array} Returns the array of property names.
+ */
+ function arrayLikeKeys(value, inherited) {
+ var result = (isArray(value) || isString(value) || isArguments(value))
+ ? baseTimes(value.length, String)
+ : [];
+
+ var length = result.length,
+ skipIndexes = !!length;
+
+ for (var key in value) {
+ if ((inherited || hasOwnProperty.call(value, key)) &&
+ !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
/**
* Used by `_.defaults` to customize its `_.assignIn` use.
*
@@ -2237,7 +2260,7 @@
/**
* Assigns `value` to `key` of `object` if the existing value is not equivalent
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons.
*
* @private
@@ -2445,14 +2468,13 @@
if (object == null) {
return !length;
}
- var index = length;
- while (index--) {
- var key = props[index],
+ object = Object(object);
+ while (length--) {
+ var key = props[length],
predicate = source[key],
value = object[key];
- if ((value === undefined &&
- !(key in Object(object))) || !predicate(value)) {
+ if ((value === undefined && !(key in object)) || !predicate(value)) {
return false;
}
}
@@ -2479,7 +2501,7 @@
* @param {Function} func The function to delay.
* @param {number} wait The number of milliseconds to delay invocation.
* @param {Array} args The arguments to provide to `func`.
- * @returns {number} Returns the timer id.
+ * @returns {number|Object} Returns the timer id or timeout object.
*/
function baseDelay(func, wait, args) {
if (typeof func != 'function') {
@@ -2824,12 +2846,7 @@
* @returns {boolean} Returns `true` if `key` exists, else `false`.
*/
function baseHas(object, key) {
- // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`,
- // that are composed entirely of index properties, return `false` for
- // `hasOwnProperty` checks of them.
- return object != null &&
- (hasOwnProperty.call(object, key) ||
- (typeof object == 'object' && key in object && getPrototype(object) === null));
+ return object != null && hasOwnProperty.call(object, key);
}
/**
@@ -3203,40 +3220,47 @@
}
/**
- * The base implementation of `_.keys` which doesn't skip the constructor
- * property of prototypes or treat sparse arrays as dense.
+ * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
*
* @private
* @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
*/
- var baseKeys = overArg(nativeKeys, Object);
+ function baseKeys(object) {
+ if (!isPrototype(object)) {
+ return nativeKeys(object);
+ }
+ var result = [];
+ for (var key in Object(object)) {
+ if (hasOwnProperty.call(object, key) && key != 'constructor') {
+ result.push(key);
+ }
+ }
+ return result;
+ }
/**
- * The base implementation of `_.keysIn` which doesn't skip the constructor
- * property of prototypes or treat sparse arrays as dense.
+ * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
*
* @private
* @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
*/
function baseKeysIn(object) {
- object = object == null ? object : Object(object);
+ if (!isObject(object)) {
+ return nativeKeysIn(object);
+ }
+ var isProto = isPrototype(object),
+ result = [];
- var result = [];
for (var key in object) {
- result.push(key);
+ if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
+ result.push(key);
+ }
}
return result;
}
- // Fallback for IE < 9 with es6-shim.
- if (enumerate && !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf')) {
- baseKeysIn = function(object) {
- return iteratorToArray(enumerate(object));
- };
- }
-
/**
* The base implementation of `_.lt` which doesn't coerce arguments.
*
@@ -3321,7 +3345,7 @@
return;
}
if (!(isArray(source) || isTypedArray(source))) {
- var props = keysIn(source);
+ var props = baseKeysIn(source);
}
arrayEach(props || source, function(srcValue, key) {
if (props) {
@@ -3688,6 +3712,9 @@
* @returns {Object} Returns `object`.
*/
function baseSet(object, path, value, customizer) {
+ if (!isObject(object)) {
+ return object;
+ }
path = isKey(path, object) ? [path] : castPath(path);
var index = -1,
@@ -3696,20 +3723,19 @@
nested = object;
while (nested != null && ++index < length) {
- var key = toKey(path[index]);
- if (isObject(nested)) {
- var newValue = value;
- if (index != lastIndex) {
- var objValue = nested[key];
- newValue = customizer ? customizer(objValue, key, nested) : undefined;
- if (newValue === undefined) {
- newValue = objValue == null
- ? (isIndex(path[index + 1]) ? [] : {})
- : objValue;
- }
+ var key = toKey(path[index]),
+ newValue = value;
+
+ if (index != lastIndex) {
+ var objValue = nested[key];
+ newValue = customizer ? customizer(objValue, key, nested) : undefined;
+ if (newValue === undefined) {
+ newValue = isObject(objValue)
+ ? objValue
+ : (isIndex(path[index + 1]) ? [] : {});
}
- assignValue(nested, key, newValue);
}
+ assignValue(nested, key, newValue);
nested = nested[key];
}
return object;
@@ -4002,7 +4028,7 @@
object = parent(object, path);
var key = toKey(last(path));
- return !(object != null && baseHas(object, key)) || delete object[key];
+ return !(object != null && hasOwnProperty.call(object, key)) || delete object[key];
}
/**
@@ -4157,6 +4183,16 @@
return (!start && end >= length) ? array : baseSlice(array, start, end);
}
+ /**
+ * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).
+ *
+ * @private
+ * @param {number|Object} id The timer id or timeout object of the timer to clear.
+ */
+ var clearTimeout = ctxClearTimeout || function(id) {
+ return root.clearTimeout(id);
+ };
+
/**
* Creates a clone of `buffer`.
*
@@ -4650,7 +4686,7 @@
function createCtor(Ctor) {
return function() {
// Use a `switch` statement to work with class constructors. See
- // http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
+ // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
// for more details.
var args = arguments;
switch (args.length) {
@@ -5338,7 +5374,7 @@
case regexpTag:
case stringTag:
// Coerce regexes to strings and treat strings, primitives and objects,
- // as equal. See http://www.ecma-international.org/ecma-262/6.0/#sec-regexp.prototype.tostring
+ // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
// for more details.
return object == (other + '');
@@ -5400,7 +5436,7 @@
var index = objLength;
while (index--) {
var key = objProps[index];
- if (!(isPartial ? key in other : baseHas(other, key))) {
+ if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
return false;
}
}
@@ -5536,19 +5572,6 @@
return arguments.length ? result(arguments[0], arguments[1]) : result;
}
- /**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a
- * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects
- * Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
- var getLength = baseProperty('length');
-
/**
* Gets the data for `map`.
*
@@ -5597,15 +5620,6 @@
return baseIsNative(value) ? value : undefined;
}
- /**
- * Gets the `[[Prototype]]` of `value`.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {null|Object} Returns the `[[Prototype]]`.
- */
- var getPrototype = overArg(nativeGetPrototype, Object);
-
/**
* Creates an array of the own enumerable symbol properties of `object`.
*
@@ -5818,23 +5832,6 @@
}
}
- /**
- * Creates an array of index keys for `object` values of arrays,
- * `arguments` objects, and strings, otherwise `null` is returned.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array|null} Returns index keys, else `null`.
- */
- function indexKeys(object) {
- var length = object ? object.length : undefined;
- if (isLength(length) &&
- (isArray(object) || isString(object) || isArguments(object))) {
- return baseTimes(length, String);
- }
- return null;
- }
-
/**
* Inserts wrapper `details` in a comment at the top of the `source` body.
*
@@ -6119,6 +6116,25 @@
return objValue;
}
+ /**
+ * This function is like
+ * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
+ * except that it includes inherited enumerable properties.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+ function nativeKeysIn(object) {
+ var result = [];
+ if (object != null) {
+ for (var key in Object(object)) {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
/**
* Gets the parent value at `path` of `object`.
*
@@ -6187,6 +6203,18 @@
};
}());
+ /**
+ * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).
+ *
+ * @private
+ * @param {Function} func The function to delay.
+ * @param {number} wait The number of milliseconds to delay invocation.
+ * @returns {number|Object} Returns the timer id or timeout object.
+ */
+ var setTimeout = ctxSetTimeout || function(func, wait) {
+ return root.setTimeout(func, wait);
+ };
+
/**
* Sets the `toString` method of `wrapper` to mimic the source of `reference`
* with wrapper details in a comment at the top of the source body.
@@ -6407,7 +6435,7 @@
/**
* Creates an array of `array` values not included in the other given arrays
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons. The order of result values is determined by the
* order they occur in the first array.
*
@@ -6910,7 +6938,7 @@
/**
* Gets the index at which the first occurrence of `value` is found in `array`
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons. If `fromIndex` is negative, it's used as the
* offset from the end of `array`.
*
@@ -6958,12 +6986,13 @@
* // => [1, 2]
*/
function initial(array) {
- return dropRight(array, 1);
+ var length = array ? array.length : 0;
+ return length ? baseSlice(array, 0, -1) : [];
}
/**
* Creates an array of unique values that are included in all given arrays
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons. The order of result values is determined by the
* order they occur in the first array.
*
@@ -7167,7 +7196,7 @@
/**
* Removes all given values from `array` using
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons.
*
* **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`
@@ -7636,7 +7665,8 @@
* // => [2, 3]
*/
function tail(array) {
- return drop(array, 1);
+ var length = array ? array.length : 0;
+ return length ? baseSlice(array, 1, length) : [];
}
/**
@@ -7793,7 +7823,7 @@
/**
* Creates an array of unique values, in order, from all given arrays using
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons.
*
* @static
@@ -7874,7 +7904,7 @@
/**
* Creates a duplicate-free version of an array, using
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons, in which only the first occurrence of each
* element is kept.
*
@@ -8019,7 +8049,7 @@
/**
* Creates an array excluding all given values using
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons.
*
* **Note:** Unlike `_.pull`, this method returns a new array.
@@ -8590,6 +8620,11 @@
* Iteration is stopped once `predicate` returns falsey. The predicate is
* invoked with three arguments: (value, index|key, collection).
*
+ * **Note:** This method returns `true` for
+ * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because
+ * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
+ * elements of empty collections.
+ *
* @static
* @memberOf _
* @since 0.1.0
@@ -8907,7 +8942,7 @@
/**
* Checks if `value` is in `collection`. If `collection` is a string, it's
* checked for a substring of `value`, otherwise
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* is used for equality comparisons. If `fromIndex` is negative, it's used as
* the offset from the end of `collection`.
*
@@ -9375,7 +9410,7 @@
return collection.size;
}
}
- return keys(collection).length;
+ return baseKeys(collection).length;
}
/**
@@ -9487,9 +9522,9 @@
* }, _.now());
* // => Logs the number of milliseconds it took for the deferred invocation.
*/
- function now() {
- return Date.now();
- }
+ var now = ctxNow || function() {
+ return root.Date.now();
+ };
/*------------------------------------------------------------------------*/
@@ -10030,7 +10065,7 @@
* **Note:** The cache is exposed as the `cache` property on the memoized
* function. Its creation may be customized by replacing the `_.memoize.Cache`
* constructor with one whose instances implement the
- * [`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object)
+ * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
* method interface of `delete`, `get`, `has`, and `set`.
*
* @static
@@ -10330,7 +10365,7 @@
/**
* Creates a function that invokes `func` with the `this` binding of the
* create function and an array of arguments much like
- * [`Function#apply`](http://www.ecma-international.org/ecma-262/6.0/#sec-function.prototype.apply).
+ * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).
*
* **Note:** This method is based on the
* [spread operator](https://mdn.io/spread_operator).
@@ -10677,7 +10712,7 @@
/**
* Performs a
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* comparison between two values to determine if they are equivalent.
*
* @static
@@ -10857,7 +10892,7 @@
* // => false
*/
function isArrayLike(value) {
- return value != null && isLength(getLength(value)) && !isFunction(value);
+ return value != null && isLength(value.length) && !isFunction(value);
}
/**
@@ -10957,8 +10992,7 @@
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a DOM element,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.
* @example
*
* _.isElement(document.body);
@@ -11016,12 +11050,14 @@
return !value.size;
}
}
+ var isProto = isPrototype(value);
for (var key in value) {
- if (hasOwnProperty.call(value, key)) {
+ if (hasOwnProperty.call(value, key) &&
+ !(isProto && key == 'constructor')) {
return false;
}
}
- return !(nonEnumShadows && keys(value).length);
+ return !(nonEnumShadows && nativeKeys(value).length);
}
/**
@@ -11040,8 +11076,7 @@
* @category Lang
* @param {*} value The value to compare.
* @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent,
- * else `false`.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
* @example
*
* var object = { 'a': 1 };
@@ -11070,8 +11105,7 @@
* @param {*} value The value to compare.
* @param {*} other The other value to compare.
* @param {Function} [customizer] The function to customize comparisons.
- * @returns {boolean} Returns `true` if the values are equivalent,
- * else `false`.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
* @example
*
* function isGreeting(value) {
@@ -11105,8 +11139,7 @@
* @since 3.0.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an error object,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is an error object, else `false`.
* @example
*
* _.isError(new Error);
@@ -11134,8 +11167,7 @@
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a finite number,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.
* @example
*
* _.isFinite(3);
@@ -11212,16 +11244,15 @@
/**
* Checks if `value` is a valid array-like length.
*
- * **Note:** This function is loosely based on
- * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ * **Note:** This method is loosely based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
* @example
*
* _.isLength(3);
@@ -11243,7 +11274,7 @@
/**
* Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
*
* @static
@@ -11322,8 +11353,12 @@
* Performs a partial deep comparison between `object` and `source` to
* determine if `object` contains equivalent property values.
*
- * **Note:** This method supports comparing the same values as `_.isEqual`
- * and is equivalent to `_.matches` when `source` is partially applied.
+ * **Note:** This method is equivalent to `_.matches` when `source` is
+ * partially applied.
+ *
+ * Partial comparisons will match empty array and empty object `source`
+ * values against any array or object value, respectively. See `_.isEqual`
+ * for a list of supported value comparisons.
*
* @static
* @memberOf _
@@ -11536,8 +11571,7 @@
* @since 0.8.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a plain object,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
* @example
*
* function Foo() {
@@ -11601,8 +11635,7 @@
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a safe integer,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.
* @example
*
* _.isSafeInteger(3);
@@ -11896,7 +11929,7 @@
* Converts `value` to an integer.
*
* **Note:** This method is loosely based on
- * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
*
* @static
* @memberOf _
@@ -11930,7 +11963,7 @@
* array-like object.
*
* **Note:** This method is based on
- * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
*
* @static
* @memberOf _
@@ -12159,13 +12192,7 @@
* // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
*/
var assignIn = createAssigner(function(object, source) {
- if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {
- copyObject(source, keysIn(source), object);
- return;
- }
- for (var key in source) {
- assignValue(object, key, source[key]);
- }
+ copyObject(source, keysIn(source), object);
});
/**
@@ -12774,7 +12801,7 @@
* Creates an array of the own enumerable property names of `object`.
*
* **Note:** Non-object values are coerced to objects. See the
- * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
+ * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
* for more details.
*
* @static
@@ -12799,23 +12826,7 @@
* // => ['0', '1']
*/
function keys(object) {
- var isProto = isPrototype(object);
- if (!(isProto || isArrayLike(object))) {
- return baseKeys(object);
- }
- var indexes = indexKeys(object),
- skipIndexes = !!indexes,
- result = indexes || [],
- length = result.length;
-
- for (var key in object) {
- if (baseHas(object, key) &&
- !(skipIndexes && (key == 'length' || isIndex(key, length))) &&
- !(isProto && key == 'constructor')) {
- result.push(key);
- }
- }
- return result;
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}
/**
@@ -12842,23 +12853,7 @@
* // => ['a', 'b', 'c'] (iteration order is not guaranteed)
*/
function keysIn(object) {
- var index = -1,
- isProto = isPrototype(object),
- props = baseKeysIn(object),
- propsLength = props.length,
- indexes = indexKeys(object),
- skipIndexes = !!indexes,
- result = indexes || [],
- length = result.length;
-
- while (++index < propsLength) {
- var key = props[index];
- if (!(skipIndexes && (key == 'length' || isIndex(key, length))) &&
- !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
- result.push(key);
- }
- }
- return result;
+ return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
}
/**
@@ -15038,8 +15033,12 @@
* object and `source`, returning `true` if the given object has equivalent
* property values, else `false`.
*
- * **Note:** The created function supports comparing the same values as
- * `_.isEqual` is equivalent to `_.isMatch` with `source` partially applied.
+ * **Note:** The created function is equivalent to `_.isMatch` with `source`
+ * partially applied.
+ *
+ * Partial comparisons will match empty array and empty object `source`
+ * values against any array or object value, respectively. See `_.isEqual`
+ * for a list of supported value comparisons.
*
* @static
* @memberOf _
@@ -15066,7 +15065,9 @@
* value at `path` of a given object to `srcValue`, returning `true` if the
* object value is equivalent, else `false`.
*
- * **Note:** This method supports comparing the same values as `_.isEqual`.
+ * **Note:** Partial comparisons will match empty array and empty object
+ * `srcValue` values against any array or object value, respectively. See
+ * `_.isEqual` for a list of supported value comparisons.
*
* @static
* @memberOf _
diff --git a/dist/lodash.min.js b/dist/lodash.min.js
index 5c282e70a2..744569f444 100644
--- a/dist/lodash.min.js
+++ b/dist/lodash.min.js
@@ -5,126 +5,125 @@
;(function(){function t(t,n){return t.set(n[0],n[1]),t}function n(t,n){return t.add(n),t}function r(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}function e(t,n,r,e){for(var u=-1,o=t?t.length:0;++u=n?t:n)),t}function dn(t,n,r,e,o,i,f){var c;if(e&&(c=i?e(t,o,i,f):e(t)),c!==P)return c;if(!cu(t))return t;if(o=Zi(t)){if(c=he(t),!n)return Wr(t,c)}else{var a=St(t),l="[object Function]"==a||"[object GeneratorFunction]"==a;if(Vi(t))return kr(t,n);if("[object Object]"==a||"[object Arguments]"==a||l&&!i){if(C(t))return i?t:{};if(c=pe(l?{}:t),
-!n)return Mr(t,_n(c,t))}else{if(!$t[a])return i?t:{};c=_e(t,a,dn,n)}}if(f||(f=new cn),i=f.get(t))return i;if(f.set(t,c),!o)var s=r?Wn(t,mu,ri):mu(t);return u(s||t,function(u,o){s&&(o=u,u=t[o]),sn(c,o,dn(u,n,r,e,o,t,f))}),c}function yn(t){var n=mu(t);return function(r){return bn(r,t,n)}}function bn(t,n,r){var e=r.length;if(null==t)return!e;for(;e--;){var u=r[e],o=n[u],i=t[u];if(i===P&&!(u in Object(t))||!o(i))return false}return true}function xn(t){return cu(t)?co(t):{}}function jn(t,n,r){if(typeof t!="function")throw new Pu("Expected a function");
-return Rt(function(){t.apply(P,r)},n)}function wn(t,n,r,e){var u=-1,o=c,i=true,f=t.length,s=[],h=n.length;if(!f)return s;r&&(n=l(n,S(r))),e?(o=a,i=false):200<=n.length&&(o=I,i=false,n=new Yt(n));t:for(;++un}function Mn(t,n){return null!=t&&(Yu.call(t,n)||typeof t=="object"&&n in t&&null===ni(t))}function Cn(t,n){return null!=t&&n in Object(t)}function Ln(t,n,r){for(var e=r?a:c,u=t[0].length,o=t.length,i=o,f=Du(o),s=1/0,h=[];i--;){var p=t[i];i&&n&&(p=l(p,S(n))),s=wo(p.length,s),f[i]=!r&&(n||120<=u&&120<=p.length)?new Yt(i&&p):P}var p=t[0],_=-1,v=f[0];t:for(;++_n?r:0,de(n,r)?t[n]:P}function nr(t,n,r){var e=-1;return n=l(n.length?n:[Wu],S(fe())),t=Yn(t,function(t){return{a:l(n,function(n){return n(t)}),b:++e,c:t}}),A(t,function(t,n){var e;t:{e=-1;for(var u=t.a,o=n.a,i=u.length,f=r.length;++e=f?c:c*("desc"==r[e]?-1:1);break t}}e=t.b-n.b}return e})}function rr(t,n){return t=Object(t),er(t,n,function(n,r){
-return r in t})}function er(t,n,r){for(var e=-1,u=n.length,o={};++en||9007199254740991n&&(n=-n>u?0:u+n),r=r>u?u:r,0>r&&(r+=u),u=n>r?0:r-n>>>0,n>>>=0,r=Du(u);++e=u){for(;e>>1,i=t[o];null!==i&&!pu(i)&&(r?i<=n:i=e?t:sr(t,n,r)}function kr(t,n){
-if(n)return t.slice();var r=new t.constructor(t.length);return t.copy(r),r}function Er(t){var n=new t.constructor(t.byteLength);return new oo(n).set(new oo(t)),n}function Sr(t,n){if(t!==n){var r=t!==P,e=null===t,u=t===t,o=pu(t),i=n!==P,f=null===n,c=n===n,a=pu(n);if(!f&&!a&&!o&&t>n||o&&i&&c&&!f&&!a||e&&i&&c||!r&&c||!u)return 1;if(!e&&!o&&!a&&tu?P:o,u=1),n=Object(n);++ei&&f[0]!==a&&f[i-1]!==a?[]:D(f,a),
-i-=c.length,ir?r?cr(n,t):n:(r=cr(n,ho(t/T(n))),Lt.test(n)?Or(r.match(Mt),0,t).join(""):r.slice(0,t))}function Yr(t,n,e,u){
-function o(){for(var n=-1,c=arguments.length,a=-1,l=u.length,s=Du(l+c),h=this&&this!==Vt&&this instanceof o?f:t;++an||e)&&(1&t&&(o[2]=h[2],n|=1&r?0:4),(r=h[3])&&(e=o[3],o[3]=e?Rr(e,r,h[4]):r,o[4]=e?D(o[3],"__lodash_placeholder__"):h[4]),
-(r=h[5])&&(e=o[5],o[5]=e?Ir(e,r,h[6]):r,o[6]=e?D(o[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(o[7]=r),128&t&&(o[8]=null==o[8]?h[8]:wo(o[8],h[8])),null==o[9]&&(o[9]=h[9]),o[0]=h[0],o[1]=n),t=o[0],n=o[1],r=o[2],e=o[3],u=o[4],f=o[9]=null==o[9]?c?0:t.length:jo(o[9]-a,0),!f&&24&n&&(n&=-25),ii((h?Ho:oi)(n&&1!=n?8==n||16==n?Nr(t,n,f):32!=n&&33!=n||u.length?qr.apply(P,o):Yr(t,n,r,e):Dr(t,n,r),o),t,n)}function ee(t,n,r,e,u,o){var i=2&u,f=t.length,c=n.length;if(f!=c&&!(i&&c>f))return false;if((c=o.get(t))&&o.get(n))return c==n;
-var c=-1,a=true,l=1&u?new Yt:P;for(o.set(t,n),o.set(n,t);++cn?0:n,e)):[]}function Ie(t,n,r){var e=t?t.length:0;return e?(n=r||n===P?1:gu(n),n=e-n,sr(t,0,0>n?0:n)):[]}function We(t,n,r){var e=t?t.length:0;
-return e?(r=null==r?0:gu(r),0>r&&(r=jo(e+r,0)),g(t,fe(n,3),r)):-1}function Be(t,n,r){var e=t?t.length:0;if(!e)return-1;var u=e-1;return r!==P&&(u=gu(r),u=0>r?jo(e+u,0):wo(u,e-1)),g(t,fe(n,3),u,true)}function Me(t){return t&&t.length?t[0]:P}function Ce(t){var n=t?t.length:0;return n?t[n-1]:P}function Le(t,n){return t&&t.length&&n&&n.length?or(t,n):t}function ze(t){return t?ko.call(t):t}function Ue(t){if(!t||!t.length)return[];var n=0;return t=f(t,function(t){if(eu(t))return n=jo(t.length,n),true}),k(n,function(n){
-return l(t,j(n))})}function De(t,n){if(!t||!t.length)return[];var e=Ue(t);return null==n?e:l(e,function(t){return r(n,P,t)})}function $e(t){return t=It(t),t.__chain__=true,t}function Fe(t,n){return n(t)}function Te(){return this}function Ne(t,n){return(Zi(t)?u:Vo)(t,fe(n,3))}function Pe(t,n){return(Zi(t)?o:Ko)(t,fe(n,3))}function Ze(t,n){return(Zi(t)?l:Yn)(t,fe(n,3))}function qe(t,n,r){var e=-1,u=_u(t),o=u.length,i=o-1;for(n=(r?ye(t,n,r):n===P)?1:gn(gu(n),0,o);++e=t&&(n=P),r}}function Je(t,n,r){return n=r?P:n,t=re(t,8,P,P,P,P,P,n),t.placeholder=Je.placeholder,t}function Ye(t,n,r){return n=r?P:n,t=re(t,16,P,P,P,P,P,n),t.placeholder=Ye.placeholder,t}function He(t,n,r){function e(n){
-var r=c,e=a;return c=a=P,_=n,s=t.apply(e,r)}function u(t){var r=t-p;return t-=_,p===P||r>=n||0>r||g&&t>=l}function o(){var t=Ve();if(u(t))return i(t);var r;r=t-_,t=n-(t-p),r=g?wo(t,l-r):t,h=Rt(o,r)}function i(t){return h=P,d&&c?e(t):(c=a=P,s)}function f(){var t=Ve(),r=u(t);if(c=arguments,a=this,p=t,r){if(h===P)return _=t=p,h=Rt(o,n),v?e(t):s;if(g)return h=Rt(o,n),e(p)}return h===P&&(h=Rt(o,n)),s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof t!="function")throw new Pu("Expected a function");return n=yu(n)||0,
-cu(r)&&(v=!!r.leading,l=(g="maxWait"in r)?jo(yu(r.maxWait)||0,n):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==P&&w.clearTimeout.call(Vt,h),_=0,c=p=a=h=P},f.flush=function(){return h===P?s:i(Ve())},f}function Qe(t,n){function r(){var e=arguments,u=n?n.apply(this,e):e[0],o=r.cache;return o.has(u)?o.get(u):(e=t.apply(this,e),r.cache=o.set(u,e),e)}if(typeof t!="function"||n&&typeof n!="function")throw new Pu("Expected a function");return r.cache=new(Qe.Cache||Gt),r}function Xe(t){if(typeof t!="function")throw new Pu("Expected a function");
-return function(){var n=arguments;switch(n.length){case 0:return!t.call(this);case 1:return!t.call(this,n[0]);case 2:return!t.call(this,n[0],n[1]);case 3:return!t.call(this,n[0],n[1],n[2])}return!t.apply(this,n)}}function tu(t,n){return t===n||t!==t&&n!==n}function nu(t){return eu(t)&&Yu.call(t,"callee")&&(!ao.call(t,"callee")||"[object Arguments]"==Xu.call(t))}function ru(t){return null!=t&&fu(ti(t))&&!ou(t)}function eu(t){return au(t)&&ru(t)}function uu(t){return!!au(t)&&("[object Error]"==Xu.call(t)||typeof t.message=="string"&&typeof t.name=="string");
-}function ou(t){return t=cu(t)?Xu.call(t):"","[object Function]"==t||"[object GeneratorFunction]"==t}function iu(t){return typeof t=="number"&&t==gu(t)}function fu(t){return typeof t=="number"&&-1=t}function cu(t){var n=typeof t;return!!t&&("object"==n||"function"==n)}function au(t){return!!t&&typeof t=="object"}function lu(t){return typeof t=="number"||au(t)&&"[object Number]"==Xu.call(t)}function su(t){return!(!au(t)||"[object Object]"!=Xu.call(t)||C(t))&&(t=ni(t),null===t||(t=Yu.call(t,"constructor")&&t.constructor,
-typeof t=="function"&&t instanceof t&&Ju.call(t)==Qu))}function hu(t){return typeof t=="string"||!Zi(t)&&au(t)&&"[object String]"==Xu.call(t)}function pu(t){return typeof t=="symbol"||au(t)&&"[object Symbol]"==Xu.call(t)}function _u(t){if(!t)return[];if(ru(t))return hu(t)?t.match(Mt):Wr(t);if(fo&&t[fo])return L(t[fo]());var n=St(t);return("[object Map]"==n?z:"[object Set]"==n?$:ku)(t)}function vu(t){return t?(t=yu(t),t===Z||t===-Z?1.7976931348623157e308*(0>t?-1:1):t===t?t:0):0===t?t:0}function gu(t){
-t=vu(t);var n=t%1;return t===t?n?t-n:t:0}function du(t){return t?gn(gu(t),0,4294967295):0}function yu(t){if(typeof t=="number")return t;if(pu(t))return q;if(cu(t)&&(t=ou(t.valueOf)?t.valueOf():t,t=cu(t)?t+"":t),typeof t!="string")return 0===t?t:+t;t=t.replace(at,"");var n=jt.test(t);return n||mt.test(t)?Pt(t.slice(2),n?2:8):xt.test(t)?q:+t}function bu(t){return Br(t,Au(t))}function xu(t){return null==t?"":dr(t)}function ju(t,n,r){return t=null==t?P:In(t,n),t===P?r:t}function wu(t,n){return null!=t&&se(t,n,Cn);
-}function mu(t){var n=je(t);if(!n&&!ru(t))return Yo(t);var r,e=ve(t),u=!!e,e=e||[],o=e.length;for(r in t)!Mn(t,r)||u&&("length"==r||de(r,o))||n&&"constructor"==r||e.push(r);return e}function Au(t){for(var n=-1,r=je(t),e=Gn(t),u=e.length,o=ve(t),i=!!o,o=o||[],f=o.length;++nt)&&(t==n.length-1?n.pop():lo.call(n,t,1),true)},Kt.prototype.get=function(t){var n=this.__data__;return t=hn(n,t),0>t?P:n[t][1]},Kt.prototype.has=function(t){return-1e?r.push([t,n]):r[e][1]=n,this},Gt.prototype.clear=function(){this.__data__={hash:new qt,map:new(Ro||Kt),string:new qt}},Gt.prototype.delete=function(t){return ce(this,t).delete(t)},Gt.prototype.get=function(t){return ce(this,t).get(t);
-},Gt.prototype.has=function(t){return ce(this,t).has(t)},Gt.prototype.set=function(t,n){return ce(this,t).set(t,n),this},Yt.prototype.add=Yt.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Yt.prototype.has=function(t){return this.__data__.has(t)},cn.prototype.clear=function(){this.__data__=new Kt},cn.prototype.delete=function(t){return this.__data__.delete(t)},cn.prototype.get=function(t){return this.__data__.get(t)},cn.prototype.has=function(t){return this.__data__.has(t);
-},cn.prototype.set=function(t,n){var r=this.__data__;if(r instanceof Kt){if(r=r.__data__,!Ro||199>r.length)return r.push([t,n]),this;r=this.__data__=new Gt(r)}return r.set(t,n),this};var Vo=zr(En),Ko=zr(Sn,true),Go=Ur(),Jo=Ur(true),Yo=U(xo);io&&!ao.call({valueOf:1},"valueOf")&&(Gn=function(t){return L(io(t))});var Ho=Lo?function(t,n){return Lo.set(t,n),t}:Wu,Qo=Wo&&1/$(new Wo([,-0]))[1]==Z?function(t){return new Wo(t)}:Cu,Xo=Lo?function(t){return Lo.get(t)}:Cu,ti=j("length"),ni=U(_o),ri=vo?U(vo):zu,ei=vo?function(t){
-for(var n=[];t;)s(n,ri(t)),t=ni(t);return n}:zu;(So&&"[object DataView]"!=St(new So(new ArrayBuffer(1)))||Ro&&"[object Map]"!=St(new Ro)||Io&&"[object Promise]"!=St(Io.resolve())||Wo&&"[object Set]"!=St(new Wo)||Bo&&"[object WeakMap]"!=St(new Bo))&&(St=function(t){var n=Xu.call(t);if(t=(t="[object Object]"==n?t.constructor:P)?ke(t):P)switch(t){case Do:return"[object DataView]";case $o:return"[object Map]";case Fo:return"[object Promise]";case To:return"[object Set]";case No:return"[object WeakMap]";
-}return n});var ui=Ku?ou:Uu,oi=function(){var t=0,n=0;return function(r,e){var u=Ve(),o=16-(u-n);if(n=u,0=n}),Zi=Du.isArray,qi=Ht?S(Ht):Dn,Vi=go||Uu,Ki=Qt?S(Qt):$n,Gi=Xt?S(Xt):Tn,Ji=tn?S(tn):Zn,Yi=nn?S(nn):qn,Hi=rn?S(rn):Vn,Qi=Qr(Jn),Xi=Qr(function(t,n){return t<=n}),tf=Lr(function(t,n){if(zo||je(n)||ru(n))Br(n,mu(n),t);else for(var r in n)Yu.call(n,r)&&sn(t,r,n[r])}),nf=Lr(function(t,n){
-if(zo||je(n)||ru(n))Br(n,Au(n),t);else for(var r in n)sn(t,r,n[r])}),rf=Lr(function(t,n,r,e){Br(n,Au(n),t,e)}),ef=Lr(function(t,n,r,e){Br(n,mu(n),t,e)}),uf=ar(function(t,n){return vn(t,kn(n,1))}),of=ar(function(t){return t.push(P,an),r(rf,P,t)}),ff=ar(function(t){return t.push(P,me),r(hf,P,t)}),cf=Vr(function(t,n,r){t[n]=r},Iu(Wu)),af=Vr(function(t,n,r){Yu.call(t,n)?t[n].push(r):t[n]=[r]},fe),lf=ar(Un),sf=Lr(function(t,n,r){Xn(t,n,r)}),hf=Lr(function(t,n,r,e){Xn(t,n,r,e)}),pf=ar(function(t,n){return null==t?{}:(n=l(kn(n,1),Oe),
-rr(t,wn(Wn(t,Au,ei),n)))}),_f=ar(function(t,n){return null==t?{}:rr(t,l(kn(n,1),Oe))}),vf=ne(mu),gf=ne(Au),df=Fr(function(t,n,r){return n=n.toLowerCase(),t+(r?Eu(n):n)}),yf=Fr(function(t,n,r){return t+(r?"-":"")+n.toLowerCase()}),bf=Fr(function(t,n,r){return t+(r?" ":"")+n.toLowerCase()}),xf=$r("toLowerCase"),jf=Fr(function(t,n,r){return t+(r?"_":"")+n.toLowerCase()}),wf=Fr(function(t,n,r){return t+(r?" ":"")+Af(n)}),mf=Fr(function(t,n,r){return t+(r?" ":"")+n.toUpperCase()}),Af=$r("toUpperCase"),Of=ar(function(t,n){
-try{return r(t,P,n)}catch(t){return uu(t)?t:new Fu(t)}}),kf=ar(function(t,n){return u(kn(n,1),function(n){n=Oe(n),t[n]=Ci(t[n],t)}),t}),Ef=Zr(),Sf=Zr(true),Rf=ar(function(t,n){return function(r){return Un(r,t,n)}}),If=ar(function(t,n){return function(r){return Un(t,r,n)}}),Wf=Gr(l),Bf=Gr(i),Mf=Gr(_),Cf=Hr(),Lf=Hr(true),zf=Kr(function(t,n){return t+n},0),Uf=te("ceil"),Df=Kr(function(t,n){return t/n},1),$f=te("floor"),Ff=Kr(function(t,n){return t*n},1),Tf=te("round"),Nf=Kr(function(t,n){return t-n},0);return It.after=function(t,n){
-if(typeof n!="function")throw new Pu("Expected a function");return t=gu(t),function(){if(1>--t)return n.apply(this,arguments)}},It.ary=Ke,It.assign=tf,It.assignIn=nf,It.assignInWith=rf,It.assignWith=ef,It.at=uf,It.before=Ge,It.bind=Ci,It.bindAll=kf,It.bindKey=Li,It.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Zi(t)?t:[t]},It.chain=$e,It.chunk=function(t,n,r){if(n=(r?ye(t,n,r):n===P)?1:jo(gu(n),0),r=t?t.length:0,!r||1>n)return[];for(var e=0,u=0,o=Du(ho(r/n));er&&(r=-r>u?0:u+r),e=e===P||e>u?u:gu(e),0>e&&(e+=u),e=r>e?0:du(e);r>>0,r?(t=xu(t))&&(typeof n=="string"||null!=n&&!Ji(n))&&(n=dr(n),""==n&&Lt.test(t))?Or(t.match(Mt),0,r):Eo.call(t,n,r):[]},It.spread=function(t,n){if(typeof t!="function")throw new Pu("Expected a function");return n=n===P?0:jo(gu(n),0),ar(function(e){var u=e[n];return e=Or(e,0,n),u&&s(e,u),r(t,this,e)})},It.tail=function(t){return Re(t,1)},It.take=function(t,n,r){return t&&t.length?(n=r||n===P?1:gu(n),
-sr(t,0,0>n?0:n)):[]},It.takeRight=function(t,n,r){var e=t?t.length:0;return e?(n=r||n===P?1:gu(n),n=e-n,sr(t,0>n?0:n,e)):[]},It.takeRightWhile=function(t,n){return t&&t.length?br(t,fe(n,3),false,true):[]},It.takeWhile=function(t,n){return t&&t.length?br(t,fe(n,3)):[]},It.tap=function(t,n){return n(t),t},It.throttle=function(t,n,r){var e=true,u=true;if(typeof t!="function")throw new Pu("Expected a function");return cu(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),He(t,n,{leading:e,maxWait:n,
-trailing:u})},It.thru=Fe,It.toArray=_u,It.toPairs=vf,It.toPairsIn=gf,It.toPath=function(t){return Zi(t)?l(t,Oe):pu(t)?[t]:Wr(fi(t))},It.toPlainObject=bu,It.transform=function(t,n,r){var e=Zi(t)||Hi(t);if(n=fe(n,4),null==r)if(e||cu(t)){var o=t.constructor;r=e?Zi(t)?new o:[]:ou(o)?xn(ni(t)):{}}else r={};return(e?u:En)(t,function(t,e,u){return n(r,t,e,u)}),r},It.unary=function(t){return Ke(t,1)},It.union=gi,It.unionBy=di,It.unionWith=yi,It.uniq=function(t){return t&&t.length?yr(t):[]},It.uniqBy=function(t,n){
-return t&&t.length?yr(t,fe(n,2)):[]},It.uniqWith=function(t,n){return t&&t.length?yr(t,P,n):[]},It.unset=function(t,n){var r;if(null==t)r=true;else{r=t;var e=n,e=be(e,r)?[e]:Ar(e);r=Ae(r,e),e=Oe(Ce(e)),r=!(null!=r&&Mn(r,e))||delete r[e]}return r},It.unzip=Ue,It.unzipWith=De,It.update=function(t,n,r){return null==t?t:lr(t,n,(typeof r=="function"?r:Wu)(In(t,n)),void 0)},It.updateWith=function(t,n,r,e){return e=typeof e=="function"?e:P,null!=t&&(t=lr(t,n,(typeof r=="function"?r:Wu)(In(t,n)),e)),t},It.values=ku,
-It.valuesIn=function(t){return null==t?[]:R(t,Au(t))},It.without=bi,It.words=Ru,It.wrap=function(t,n){return n=null==n?Wu:n,$i(n,t)},It.xor=xi,It.xorBy=ji,It.xorWith=wi,It.zip=mi,It.zipObject=function(t,n){return wr(t||[],n||[],sn)},It.zipObjectDeep=function(t,n){return wr(t||[],n||[],lr)},It.zipWith=Ai,It.entries=vf,It.entriesIn=gf,It.extend=nf,It.extendWith=rf,Mu(It,It),It.add=zf,It.attempt=Of,It.camelCase=df,It.capitalize=Eu,It.ceil=Uf,It.clamp=function(t,n,r){return r===P&&(r=n,n=P),r!==P&&(r=yu(r),
-r=r===r?r:0),n!==P&&(n=yu(n),n=n===n?n:0),gn(yu(t),n,r)},It.clone=function(t){return dn(t,false,true)},It.cloneDeep=function(t){return dn(t,true,true)},It.cloneDeepWith=function(t,n){return dn(t,true,true,n)},It.cloneWith=function(t,n){return dn(t,false,true,n)},It.conformsTo=function(t,n){return null==n||bn(t,n,mu(n))},It.deburr=Su,It.defaultTo=function(t,n){return null==t||t!==t?n:t},It.divide=Df,It.endsWith=function(t,n,r){t=xu(t),n=dr(n);var e=t.length,e=r=r===P?e:gn(gu(r),0,e);return r-=n.length,0<=r&&t.slice(r,e)==n;
-},It.eq=tu,It.escape=function(t){return(t=xu(t))&&X.test(t)?t.replace(H,un):t},It.escapeRegExp=function(t){return(t=xu(t))&&ct.test(t)?t.replace(ft,"\\$&"):t},It.every=function(t,n,r){var e=Zi(t)?i:mn;return r&&ye(t,n,r)&&(n=P),e(t,fe(n,3))},It.find=Ei,It.findIndex=We,It.findKey=function(t,n){return v(t,fe(n,3),En)},It.findLast=Si,It.findLastIndex=Be,It.findLastKey=function(t,n){return v(t,fe(n,3),Sn)},It.floor=$f,It.forEach=Ne,It.forEachRight=Pe,It.forIn=function(t,n){return null==t?t:Go(t,fe(n,3),Au);
-},It.forInRight=function(t,n){return null==t?t:Jo(t,fe(n,3),Au)},It.forOwn=function(t,n){return t&&En(t,fe(n,3))},It.forOwnRight=function(t,n){return t&&Sn(t,fe(n,3))},It.get=ju,It.gt=Ni,It.gte=Pi,It.has=function(t,n){return null!=t&&se(t,n,Mn)},It.hasIn=wu,It.head=Me,It.identity=Wu,It.includes=function(t,n,r,e){return t=ru(t)?t:ku(t),r=r&&!e?gu(r):0,e=t.length,0>r&&(r=jo(e+r,0)),hu(t)?r<=e&&-1r&&(r=jo(e+r,0)),d(t,n,r)):-1},It.inRange=function(t,n,r){return n=vu(n),r===P?(r=n,n=0):r=vu(r),t=yu(t),t>=wo(n,r)&&t=t},It.isSet=Yi,It.isString=hu,
-It.isSymbol=pu,It.isTypedArray=Hi,It.isUndefined=function(t){return t===P},It.isWeakMap=function(t){return au(t)&&"[object WeakMap]"==St(t)},It.isWeakSet=function(t){return au(t)&&"[object WeakSet]"==Xu.call(t)},It.join=function(t,n){return t?bo.call(t,n):""},It.kebabCase=yf,It.last=Ce,It.lastIndexOf=function(t,n,r){var e=t?t.length:0;if(!e)return-1;var u=e;if(r!==P&&(u=gu(r),u=(0>u?jo(e+u,0):wo(u,e-1))+1),n!==n)return g(t,b,u-1,true);for(;u--;)if(t[u]===n)return u;return-1},It.lowerCase=bf,It.lowerFirst=xf,
-It.lt=Qi,It.lte=Xi,It.max=function(t){return t&&t.length?An(t,Wu,Bn):P},It.maxBy=function(t,n){return t&&t.length?An(t,fe(n,2),Bn):P},It.mean=function(t){return x(t,Wu)},It.meanBy=function(t,n){return x(t,fe(n,2))},It.min=function(t){return t&&t.length?An(t,Wu,Jn):P},It.minBy=function(t,n){return t&&t.length?An(t,fe(n,2),Jn):P},It.stubArray=zu,It.stubFalse=Uu,It.stubObject=function(){return{}},It.stubString=function(){return""},It.stubTrue=function(){return true},It.multiply=Ff,It.nth=function(t,n){
-return t&&t.length?tr(t,gu(n)):P},It.noConflict=function(){return Vt._===this&&(Vt._=to),this},It.noop=Cu,It.now=Ve,It.pad=function(t,n,r){t=xu(t);var e=(n=gu(n))?T(t):0;return!n||e>=n?t:(n=(n-e)/2,Jr(po(n),r)+t+Jr(ho(n),r))},It.padEnd=function(t,n,r){t=xu(t);var e=(n=gu(n))?T(t):0;return n&&en){var e=t;t=n,n=e}return r||t%1||n%1?(r=Ao(),wo(t+r*(n-t+Nt("1e-"+((r+"").length-1))),n)):fr(t,n)},It.reduce=function(t,n,r){var e=Zi(t)?h:m,u=3>arguments.length;return e(t,fe(n,4),r,u,Vo)},It.reduceRight=function(t,n,r){var e=Zi(t)?p:m,u=3>arguments.length;return e(t,fe(n,4),r,u,Ko)},It.repeat=function(t,n,r){
-return n=(r?ye(t,n,r):n===P)?1:gu(n),cr(xu(t),n)},It.replace=function(){var t=arguments,n=xu(t[0]);return 3>t.length?n:Oo.call(n,t[1],t[2])},It.result=function(t,n,r){n=be(n,t)?[n]:Ar(n);var e=-1,u=n.length;for(u||(t=P,u=1);++et||9007199254740991=o)return t;if(o=r-T(e),1>o)return e;if(r=i?Or(i,0,o).join(""):t.slice(0,o),u===P)return r+e;if(i&&(o+=r.length-o),Ji(u)){if(t.slice(o).search(u)){var f=r;for(u.global||(u=Nu(u.source,xu(yt.exec(u))+"g")),
-u.lastIndex=0;i=u.exec(f);)var c=i.index;r=r.slice(0,c===P?o:c)}}else t.indexOf(dr(u),o)!=o&&(u=r.lastIndexOf(u),-1u.__dir__?"Right":"")}),u},Zt.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse()}}),u(["filter","map","takeWhile"],function(t,n){var r=n+1,e=1==r||3==r;Zt.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({
-iteratee:fe(t,3),type:r}),n.__filtered__=n.__filtered__||e,n}}),u(["head","last"],function(t,n){var r="take"+(n?"Right":"");Zt.prototype[t]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(t,n){var r="drop"+(n?"":"Right");Zt.prototype[t]=function(){return this.__filtered__?new Zt(this):this[r](1)}}),Zt.prototype.compact=function(){return this.filter(Wu)},Zt.prototype.find=function(t){return this.filter(t).head()},Zt.prototype.findLast=function(t){return this.reverse().find(t);
-},Zt.prototype.invokeMap=ar(function(t,n){return typeof t=="function"?new Zt(this):this.map(function(r){return Un(r,t,n)})}),Zt.prototype.reject=function(t){return this.filter(Xe(fe(t)))},Zt.prototype.slice=function(t,n){t=gu(t);var r=this;return r.__filtered__&&(0n)?new Zt(r):(0>t?r=r.takeRight(-t):t&&(r=r.drop(t)),n!==P&&(n=gu(n),r=0>n?r.dropRight(-n):r.take(n-t)),r)},Zt.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Zt.prototype.toArray=function(){return this.take(4294967295);
-},En(Zt.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),e=/^(?:head|last)$/.test(n),u=It[e?"take"+("last"==n?"Right":""):n],o=e||/^find/.test(n);u&&(It.prototype[n]=function(){function n(t){return t=u.apply(It,s([t],f)),e&&h?t[0]:t}var i=this.__wrapped__,f=e?[1]:arguments,c=i instanceof Zt,a=f[0],l=c||Zi(i);l&&r&&typeof a=="function"&&1!=a.length&&(c=l=false);var h=this.__chain__,p=!!this.__actions__.length,a=o&&!h,c=c&&!p;return!o&&l?(i=c?i:new Zt(this),i=t.apply(i,f),i.__actions__.push({
-func:Fe,args:[n],thisArg:P}),new Tt(i,h)):a&&c?t.apply(this,f):(i=this.thru(n),a?e?i.value()[0]:i.value():i)})}),u("pop push shift sort splice unshift".split(" "),function(t){var n=Zu[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",e=/^(?:pop|shift)$/.test(t);It.prototype[t]=function(){var t=arguments;if(e&&!this.__chain__){var u=this.value();return n.apply(Zi(u)?u:[],t)}return this[r](function(r){return n.apply(Zi(r)?r:[],t)})}}),En(Zt.prototype,function(t,n){var r=It[n];if(r){var e=r.name+"";
-(Uo[e]||(Uo[e]=[])).push({name:n,func:r})}}),Uo[qr(P,2).name]=[{name:"wrapper",func:P}],Zt.prototype.clone=function(){var t=new Zt(this.__wrapped__);return t.__actions__=Wr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Wr(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Wr(this.__views__),t},Zt.prototype.reverse=function(){if(this.__filtered__){var t=new Zt(this);t.__dir__=-1,t.__filtered__=true}else t=this.clone(),t.__dir__*=-1;return t;
-},Zt.prototype.value=function(){var t,n=this.__wrapped__.value(),r=this.__dir__,e=Zi(n),u=0>r,o=e?n.length:0;t=o;for(var i=this.__views__,f=0,c=-1,a=i.length;++co||o==t&&a==t)return xr(n,this.__actions__);e=[];t:for(;t--&&c=this.__values__.length,n=t?P:this.__values__[this.__index__++];return{done:t,value:n}},It.prototype.plant=function(t){
-for(var n,r=this;r instanceof Ft;){var e=Se(r);e.__index__=0,e.__values__=P,n?u.__wrapped__=e:n=e;var u=e,r=r.__wrapped__}return u.__wrapped__=t,n},It.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof Zt?(this.__actions__.length&&(t=new Zt(this)),t=t.reverse(),t.__actions__.push({func:Fe,args:[ze],thisArg:P}),new Tt(t,this.__chain__)):this.thru(ze)},It.prototype.toJSON=It.prototype.valueOf=It.prototype.value=function(){return xr(this.__wrapped__,this.__actions__)},It.prototype.first=It.prototype.head,
-fo&&(It.prototype[fo]=Te),It}var P,Z=1/0,q=NaN,V=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],K=/\b__p\+='';/g,G=/\b(__p\+=)''\+/g,J=/(__e\(.*?\)|\b__t\))\+'';/g,Y=/&(?:amp|lt|gt|quot|#39|#96);/g,H=/[&<>"'`]/g,Q=RegExp(Y.source),X=RegExp(H.source),tt=/<%-([\s\S]+?)%>/g,nt=/<%([\s\S]+?)%>/g,rt=/<%=([\s\S]+?)%>/g,et=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ut=/^\w*$/,ot=/^\./,it=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ft=/[\\^$.*+?()[\]{}|]/g,ct=RegExp(ft.source),at=/^\s+|\s+$/g,lt=/^\s+/,st=/\s+$/,ht=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,pt=/\{\n\/\* \[wrapped with (.+)\] \*/,_t=/,? & /,vt=/[a-zA-Z0-9]+/g,gt=/\\(\\)?/g,dt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,yt=/\w*$/,bt=/^0x/i,xt=/^[-+]0x[0-9a-f]+$/i,jt=/^0b[01]+$/i,wt=/^\[object .+?Constructor\]$/,mt=/^0o[0-7]+$/i,At=/^(?:0|[1-9]\d*)$/,Ot=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,kt=/($^)/,Et=/['\n\r\u2028\u2029\\]/g,St="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*",Rt="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+St,It="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",Wt=RegExp("['\u2019]","g"),Bt=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),Mt=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+It+St,"g"),Ct=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d+",Rt].join("|"),"g"),Lt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),zt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ut="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise Reflect RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Dt={};
-Dt["[object Float32Array]"]=Dt["[object Float64Array]"]=Dt["[object Int8Array]"]=Dt["[object Int16Array]"]=Dt["[object Int32Array]"]=Dt["[object Uint8Array]"]=Dt["[object Uint8ClampedArray]"]=Dt["[object Uint16Array]"]=Dt["[object Uint32Array]"]=true,Dt["[object Arguments]"]=Dt["[object Array]"]=Dt["[object ArrayBuffer]"]=Dt["[object Boolean]"]=Dt["[object DataView]"]=Dt["[object Date]"]=Dt["[object Error]"]=Dt["[object Function]"]=Dt["[object Map]"]=Dt["[object Number]"]=Dt["[object Object]"]=Dt["[object RegExp]"]=Dt["[object Set]"]=Dt["[object String]"]=Dt["[object WeakMap]"]=false;
-var $t={};$t["[object Arguments]"]=$t["[object Array]"]=$t["[object ArrayBuffer]"]=$t["[object DataView]"]=$t["[object Boolean]"]=$t["[object Date]"]=$t["[object Float32Array]"]=$t["[object Float64Array]"]=$t["[object Int8Array]"]=$t["[object Int16Array]"]=$t["[object Int32Array]"]=$t["[object Map]"]=$t["[object Number]"]=$t["[object Object]"]=$t["[object RegExp]"]=$t["[object Set]"]=$t["[object String]"]=$t["[object Symbol]"]=$t["[object Uint8Array]"]=$t["[object Uint8ClampedArray]"]=$t["[object Uint16Array]"]=$t["[object Uint32Array]"]=true,
-$t["[object Error]"]=$t["[object Function]"]=$t["[object WeakMap]"]=false;var Ft,Tt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Nt=parseFloat,Pt=parseInt,Zt=typeof global=="object"&&global&&global.Object===Object&&global,qt=typeof self=="object"&&self&&self.Object===Object&&self,Vt=Zt||qt||Function("return this")(),Kt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Gt=Kt&&typeof module=="object"&&module&&!module.nodeType&&module,Jt=Gt&&Gt.exports===Kt,Yt=Jt&&Zt.h;
-t:{try{Ft=Yt&&Yt.f("util");break t}catch(t){}Ft=void 0}var Ht=Ft&&Ft.isArrayBuffer,Qt=Ft&&Ft.isDate,Xt=Ft&&Ft.isMap,tn=Ft&&Ft.isRegExp,nn=Ft&&Ft.isSet,rn=Ft&&Ft.isTypedArray,en=w({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i",
-"\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"}),un=w({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"}),on=w({"&":"&","<":"<",">":">",""":'"',"'":"'",
-"`":"`"}),fn=N();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Vt._=fn, define(function(){return fn})):Gt?((Gt.exports=fn)._=fn,Kt._=fn):Vt._=fn}).call(this);
\ No newline at end of file
+return-1}function y(t,n,r,e){--r;for(var u=t.length;++r=n?t:n)),t}function gn(t,n,r,e,o,i,f){var c;if(e&&(c=i?e(t,o,i,f):e(t)),c!==N)return c;if(!uu(t))return t;if(o=Fi(t)){if(c=he(t),!n)return Wr(t,c)}else{var a=Et(t),l="[object Function]"==a||"[object GeneratorFunction]"==a;if(Ni(t))return kr(t,n);if("[object Object]"==a||"[object Arguments]"==a||l&&!i){if(C(t))return i?t:{};if(c=pe(l?{}:t),!n)return Mr(t,pn(c,t));
+}else{if(!Ut[a])return i?t:{};c=_e(t,a,gn,n)}}if(f||(f=new Jt),i=f.get(t))return i;if(f.set(t,c),!o)var s=r?Rn(t,bu,Yo):bu(t);return u(s||t,function(u,o){s&&(o=u,u=t[o]),ln(c,o,gn(u,n,r,e,o,t,f))}),c}function dn(t){var n=bu(t);return function(r){return yn(r,t,n)}}function yn(t,n,r){var e=r.length;if(null==t)return!e;for(t=Object(t);e--;){var u=r[e],o=n[u],i=t[u];if(i===N&&!(u in t)||!o(i))return false}return true}function bn(t){return uu(t)?ro(t):{}}function xn(t,n,r){if(typeof t!="function")throw new Uu("Expected a function");
+return ti(function(){t.apply(N,r)},n)}function jn(t,n,r,e){var u=-1,o=c,i=true,f=t.length,s=[],h=n.length;if(!f)return s;r&&(n=l(n,S(r))),e?(o=a,i=false):200<=n.length&&(o=R,i=false,n=new Kt(n));t:for(;++un}function Bn(t,n){return null!=t&&qu.call(t,n)}function Mn(t,n){return null!=t&&n in Object(t)}function Cn(t,n,r){for(var e=r?a:c,u=t[0].length,o=t.length,i=o,f=Cu(o),s=1/0,h=[];i--;){var p=t[i];i&&n&&(p=l(p,S(n))),s=yo(p.length,s),f[i]=!r&&(n||120<=u&&120<=p.length)?new Kt(i&&p):N}var p=t[0],_=-1,v=f[0];t:for(;++_n?r:0,ge(n,r)?t[n]:N}function nr(t,n,r){var e=-1;return n=l(n.length?n:[Eu],S(fe())),t=Yn(t,function(t){return{a:l(n,function(n){return n(t)}),b:++e,c:t}}),A(t,function(t,n){var e;t:{e=-1;for(var u=t.a,o=n.a,i=u.length,f=r.length;++e=f?c:c*("desc"==r[e]?-1:1);break t}}e=t.b-n.b}return e})}function rr(t,n){return t=Object(t),er(t,n,function(n,r){return r in t})}function er(t,n,r){for(var e=-1,u=n.length,o={};++en||9007199254740991n&&(n=-n>u?0:u+n),r=r>u?u:r,0>r&&(r+=u),u=n>r?0:r-n>>>0,n>>>=0,r=Cu(u);++e=u){for(;e>>1,i=t[o];null!==i&&!au(i)&&(r?i<=n:i=e?t:sr(t,n,r)}function kr(t,n){if(n)return t.slice();var r=new t.constructor(t.length);return t.copy(r),r}function Er(t){var n=new t.constructor(t.byteLength);return new Xu(n).set(new Xu(t)),n}function Sr(t,n){if(t!==n){var r=t!==N,e=null===t,u=t===t,o=au(t),i=n!==N,f=null===n,c=n===n,a=au(n);if(!f&&!a&&!o&&t>n||o&&i&&c&&!f&&!a||e&&i&&c||!r&&c||!u)return 1;if(!e&&!o&&!a&&tu?N:o,u=1),n=Object(n);++ei&&f[0]!==a&&f[i-1]!==a?[]:z(f,a),i-=c.length,ir?r?cr(n,t):n:(r=cr(n,ao(t/F(n))),
+Ct.test(n)?Or(r.match(Bt),0,t).join(""):r.slice(0,t))}function Yr(t,n,e,u){function o(){for(var n=-1,c=arguments.length,a=-1,l=u.length,s=Cu(l+c),h=this&&this!==qt&&this instanceof o?f:t;++an||e)&&(1&t&&(o[2]=h[2],
+n|=1&r?0:4),(r=h[3])&&(e=o[3],o[3]=e?Ir(e,r,h[4]):r,o[4]=e?z(o[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=o[5],o[5]=e?Rr(e,r,h[6]):r,o[6]=e?z(o[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(o[7]=r),128&t&&(o[8]=null==o[8]?h[8]:yo(o[8],h[8])),null==o[9]&&(o[9]=h[9]),o[0]=h[0],o[1]=n),t=o[0],n=o[1],r=o[2],e=o[3],u=o[4],f=o[9]=null==o[9]?c?0:t.length:go(o[9]-a,0),!f&&24&n&&(n&=-25),ni((h?Vo:Xo)(n&&1!=n?8==n||16==n?Nr(t,n,f):32!=n&&33!=n||u.length?qr.apply(N,o):Yr(t,n,r,e):Ur(t,n,r),o),t,n)}function ee(t,n,r,e,u,o){
+var i=2&u,f=t.length,c=n.length;if(f!=c&&!(i&&c>f))return false;if((c=o.get(t))&&o.get(n))return c==n;var c=-1,a=true,l=1&u?new Kt:N;for(o.set(t,n),o.set(n,t);++cr&&(r=go(e+r,0)),g(t,fe(n,3),r)):-1}function Ie(t,n,r){var e=t?t.length:0;if(!e)return-1;var u=e-1;return r!==N&&(u=hu(r),u=0>r?go(e+u,0):yo(u,e-1)),
+g(t,fe(n,3),u,true)}function Re(t){return t&&t.length?t[0]:N}function We(t){var n=t?t.length:0;return n?t[n-1]:N}function Be(t,n){return t&&t.length&&n&&n.length?or(t,n):t}function Me(t){return t?mo.call(t):t}function Ce(t){if(!t||!t.length)return[];var n=0;return t=f(t,function(t){if(Xe(t))return n=go(t.length,n),true}),k(n,function(n){return l(t,j(n))})}function Le(t,n){if(!t||!t.length)return[];var e=Ce(t);return null==n?e:l(e,function(t){return r(n,N,t)})}function De(t){return t=St(t),t.__chain__=true,
+t}function ze(t,n){return n(t)}function Ue(){return this}function $e(t,n){return(Fi(t)?u:No)(t,fe(n,3))}function Fe(t,n){return(Fi(t)?o:Po)(t,fe(n,3))}function Te(t,n){return(Fi(t)?l:Yn)(t,fe(n,3))}function Ne(t,n,r){var e=-1,u=lu(t),o=u.length,i=o-1;for(n=(r?de(t,n,r):n===N)?1:vn(hu(n),0,o);++e=t&&(n=N),r}}function qe(t,n,r){return n=r?N:n,t=re(t,8,N,N,N,N,N,n),t.placeholder=qe.placeholder,t}function Ve(t,n,r){return n=r?N:n,t=re(t,16,N,N,N,N,N,n),t.placeholder=Ve.placeholder,t}function Ke(t,n,r){function e(n){var r=c,e=a;return c=a=N,_=n,s=t.apply(e,r)}function u(t){var r=t-p;return t-=_,p===N||r>=n||0>r||g&&t>=l}function o(){var t=Ii();if(u(t))return i(t);var r,e=ti;r=t-_,t=n-(t-p),r=g?yo(t,l-r):t,h=e(o,r)}function i(t){
+return h=N,d&&c?e(t):(c=a=N,s)}function f(){var t=Ii(),r=u(t);if(c=arguments,a=this,p=t,r){if(h===N)return _=t=p,h=ti(o,n),v?e(t):s;if(g)return h=ti(o,n),e(p)}return h===N&&(h=ti(o,n)),s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof t!="function")throw new Uu("Expected a function");return n=_u(n)||0,uu(r)&&(v=!!r.leading,l=(g="maxWait"in r)?go(_u(r.maxWait)||0,n):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==N&&Ko(h),_=0,c=p=a=h=N},f.flush=function(){return h===N?s:i(Ii())},f}function Ge(t,n){
+function r(){var e=arguments,u=n?n.apply(this,e):e[0],o=r.cache;return o.has(u)?o.get(u):(e=t.apply(this,e),r.cache=o.set(u,e),e)}if(typeof t!="function"||n&&typeof n!="function")throw new Uu("Expected a function");return r.cache=new(Ge.Cache||Vt),r}function Je(t){if(typeof t!="function")throw new Uu("Expected a function");return function(){var n=arguments;switch(n.length){case 0:return!t.call(this);case 1:return!t.call(this,n[0]);case 2:return!t.call(this,n[0],n[1]);case 3:return!t.call(this,n[0],n[1],n[2]);
+}return!t.apply(this,n)}}function Ye(t,n){return t===n||t!==t&&n!==n}function He(t){return Xe(t)&&qu.call(t,"callee")&&(!eo.call(t,"callee")||"[object Arguments]"==Gu.call(t))}function Qe(t){return null!=t&&eu(t.length)&&!nu(t)}function Xe(t){return ou(t)&&Qe(t)}function tu(t){return!!ou(t)&&("[object Error]"==Gu.call(t)||typeof t.message=="string"&&typeof t.name=="string")}function nu(t){return t=uu(t)?Gu.call(t):"","[object Function]"==t||"[object GeneratorFunction]"==t}function ru(t){return typeof t=="number"&&t==hu(t);
+}function eu(t){return typeof t=="number"&&-1=t}function uu(t){var n=typeof t;return!!t&&("object"==n||"function"==n)}function ou(t){return!!t&&typeof t=="object"}function iu(t){return typeof t=="number"||ou(t)&&"[object Number]"==Gu.call(t)}function fu(t){return!(!ou(t)||"[object Object]"!=Gu.call(t)||C(t))&&(t=to(t),null===t||(t=qu.call(t,"constructor")&&t.constructor,typeof t=="function"&&t instanceof t&&Zu.call(t)==Ku))}function cu(t){return typeof t=="string"||!Fi(t)&&ou(t)&&"[object String]"==Gu.call(t);
+}function au(t){return typeof t=="symbol"||ou(t)&&"[object Symbol]"==Gu.call(t)}function lu(t){if(!t)return[];if(Qe(t))return cu(t)?t.match(Bt):Wr(t);if(no&&t[no]){t=t[no]();for(var n,r=[];!(n=t.next()).done;)r.push(n.value);return r}return n=Et(t),("[object Map]"==n?L:"[object Set]"==n?U:mu)(t)}function su(t){return t?(t=_u(t),t===P||t===-P?1.7976931348623157e308*(0>t?-1:1):t===t?t:0):0===t?t:0}function hu(t){t=su(t);var n=t%1;return t===t?n?t-n:t:0}function pu(t){return t?vn(hu(t),0,4294967295):0;
+}function _u(t){if(typeof t=="number")return t;if(au(t))return Z;if(uu(t)&&(t=nu(t.valueOf)?t.valueOf():t,t=uu(t)?t+"":t),typeof t!="string")return 0===t?t:+t;t=t.replace(ct,"");var n=xt.test(t);return n||mt.test(t)?Nt(t.slice(2),n?2:8):bt.test(t)?Z:+t}function vu(t){return Br(t,xu(t))}function gu(t){return null==t?"":dr(t)}function du(t,n,r){return t=null==t?N:In(t,n),t===N?r:t}function yu(t,n){return null!=t&&se(t,n,Mn)}function bu(t){return Qe(t)?fn(t):Kn(t)}function xu(t){return Qe(t)?fn(t,true):Gn(t);
+}function ju(t,n){return null==t?{}:er(t,Rn(t,xu,Ho),fe(n))}function mu(t){return t?I(t,bu(t)):[]}function wu(t){return xf(gu(t).toLowerCase())}function Au(t){return(t=gu(t))&&t.replace(At,rn).replace(Wt,"")}function Ou(t,n,r){return t=gu(t),n=r?N:n,n===N&&(n=Lt.test(t)?Mt:_t),t.match(n)||[]}function ku(t){return function(){return t}}function Eu(t){return t}function Su(t){return Vn(typeof t=="function"?t:gn(t,true))}function Iu(t,n,r){var e=bu(n),o=Sn(n,e);null!=r||uu(n)&&(o.length||!e.length)||(r=n,
+n=t,t=this,o=Sn(n,bu(n)));var i=!(uu(r)&&"chain"in r&&!r.chain),f=nu(t);return u(o,function(r){var e=n[r];t[r]=e,f&&(t.prototype[r]=function(){var n=this.__chain__;if(i||n){var r=t(this.__wrapped__);return(r.__actions__=Wr(this.__actions__)).push({func:e,args:arguments,thisArg:t}),r.__chain__=n,r}return e.apply(t,s([this.value()],arguments))})}),t}function Ru(){}function Wu(t){return ye(t)?j(Ae(t)):ur(t)}function Bu(){return[]}function Mu(){return false}m=m?on.defaults({},m,on.pick(qt,Dt)):qt;var Cu=m.Array,Lu=m.Error,Du=m.Math,zu=m.RegExp,Uu=m.TypeError,$u=m.Array.prototype,Fu=m.Object.prototype,Tu=m.String.prototype,Nu=m["__core-js_shared__"],Pu=function(){
+var t=/[^.]+$/.exec(Nu&&Nu.keys&&Nu.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),Zu=m.Function.prototype.toString,qu=Fu.hasOwnProperty,Vu=0,Ku=Zu.call(Object),Gu=Fu.toString,Ju=qt._,Yu=zu("^"+Zu.call(qu).replace(it,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Hu=Gt?m.Buffer:N,Qu=m.Symbol,Xu=m.Uint8Array,to=D(Object.getPrototypeOf),no=Qu?Qu.iterator:N,ro=m.Object.create,eo=Fu.propertyIsEnumerable,uo=$u.splice,oo=Qu?Qu.isConcatSpreadable:N,io=m.clearTimeout!==qt.clearTimeout&&m.clearTimeout,fo=m.Date&&m.Date.now!==qt.Date.now&&m.Date.now,co=m.setTimeout!==qt.setTimeout&&m.setTimeout,ao=Du.ceil,lo=Du.floor,so=Object.getOwnPropertySymbols,ho=Hu?Hu.isBuffer:N,po=m.isFinite,_o=$u.join,vo=D(Object.keys),go=Du.max,yo=Du.min,bo=m.parseInt,xo=Du.random,jo=Tu.replace,mo=$u.reverse,wo=Tu.split,Ao=le(m,"DataView"),Oo=le(m,"Map"),ko=le(m,"Promise"),Eo=le(m,"Set"),So=le(m,"WeakMap"),Io=le(m.Object,"create"),Ro=function(){
+var t=le(m.Object,"defineProperty"),n=le.name;return n&&2t)&&(t==n.length-1?n.pop():uo.call(n,t,1),true)},Zt.prototype.get=function(t){var n=this.__data__;return t=sn(n,t),0>t?N:n[t][1]},Zt.prototype.has=function(t){return-1e?r.push([t,n]):r[e][1]=n,this},Vt.prototype.clear=function(){this.__data__={hash:new Pt,map:new(Oo||Zt),string:new Pt}},Vt.prototype.delete=function(t){return ce(this,t).delete(t)},Vt.prototype.get=function(t){return ce(this,t).get(t);
+},Vt.prototype.has=function(t){return ce(this,t).has(t)},Vt.prototype.set=function(t,n){return ce(this,t).set(t,n),this},Kt.prototype.add=Kt.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Kt.prototype.has=function(t){return this.__data__.has(t)},Jt.prototype.clear=function(){this.__data__=new Zt},Jt.prototype.delete=function(t){return this.__data__.delete(t)},Jt.prototype.get=function(t){return this.__data__.get(t)},Jt.prototype.has=function(t){return this.__data__.has(t);
+},Jt.prototype.set=function(t,n){var r=this.__data__;if(r instanceof Zt){if(r=r.__data__,!Oo||199>r.length)return r.push([t,n]),this;r=this.__data__=new Vt(r)}return r.set(t,n),this};var No=Dr(kn),Po=Dr(En,true),Zo=zr(),qo=zr(true),Vo=Wo?function(t,n){return Wo.set(t,n),t}:Eu,Ko=io||function(t){return qt.clearTimeout(t)},Go=Eo&&1/U(new Eo([,-0]))[1]==P?function(t){return new Eo(t)}:Ru,Jo=Wo?function(t){return Wo.get(t)}:Ru,Yo=so?D(so):Bu,Ho=so?function(t){for(var n=[];t;)s(n,Yo(t)),t=to(t);return n}:Bu;
+(Ao&&"[object DataView]"!=Et(new Ao(new ArrayBuffer(1)))||Oo&&"[object Map]"!=Et(new Oo)||ko&&"[object Promise]"!=Et(ko.resolve())||Eo&&"[object Set]"!=Et(new Eo)||So&&"[object WeakMap]"!=Et(new So))&&(Et=function(t){var n=Gu.call(t);if(t=(t="[object Object]"==n?t.constructor:N)?Oe(t):N)switch(t){case Co:return"[object DataView]";case Lo:return"[object Map]";case Do:return"[object Promise]";case zo:return"[object Set]";case Uo:return"[object WeakMap]"}return n});var Qo=Nu?nu:Mu,Xo=function(){var t=0,n=0;
+return function(r,e){var u=Ii(),o=16-(u-n);if(n=u,0=n}),Fi=Cu.isArray,Ti=Yt?S(Yt):zn,Ni=ho||Mu,Pi=Ht?S(Ht):Un,Zi=Qt?S(Qt):Fn,qi=Xt?S(Xt):Pn,Vi=tn?S(tn):Zn,Ki=nn?S(nn):qn,Gi=Qr(Jn),Ji=Qr(function(t,n){return t<=n}),Yi=Lr(function(t,n){if(Bo||xe(n)||Qe(n))Br(n,bu(n),t);else for(var r in n)qu.call(n,r)&&ln(t,r,n[r]);
+}),Hi=Lr(function(t,n){Br(n,xu(n),t)}),Qi=Lr(function(t,n,r,e){Br(n,xu(n),t,e)}),Xi=Lr(function(t,n,r,e){Br(n,bu(n),t,e)}),tf=ar(function(t,n){return _n(t,On(n,1))}),nf=ar(function(t){return t.push(N,cn),r(Qi,N,t)}),rf=ar(function(t){return t.push(N,me),r(cf,N,t)}),ef=Vr(function(t,n,r){t[n]=r},ku(Eu)),uf=Vr(function(t,n,r){qu.call(t,n)?t[n].push(r):t[n]=[r]},fe),of=ar(Dn),ff=Lr(function(t,n,r){Xn(t,n,r)}),cf=Lr(function(t,n,r,e){Xn(t,n,r,e)}),af=ar(function(t,n){return null==t?{}:(n=l(On(n,1),Ae),
+rr(t,jn(Rn(t,xu,Ho),n)))}),lf=ar(function(t,n){return null==t?{}:rr(t,l(On(n,1),Ae))}),sf=ne(bu),hf=ne(xu),pf=Fr(function(t,n,r){return n=n.toLowerCase(),t+(r?wu(n):n)}),_f=Fr(function(t,n,r){return t+(r?"-":"")+n.toLowerCase()}),vf=Fr(function(t,n,r){return t+(r?" ":"")+n.toLowerCase()}),gf=$r("toLowerCase"),df=Fr(function(t,n,r){return t+(r?"_":"")+n.toLowerCase()}),yf=Fr(function(t,n,r){return t+(r?" ":"")+xf(n)}),bf=Fr(function(t,n,r){return t+(r?" ":"")+n.toUpperCase()}),xf=$r("toUpperCase"),jf=ar(function(t,n){
+try{return r(t,N,n)}catch(t){return tu(t)?t:new Lu(t)}}),mf=ar(function(t,n){return u(On(n,1),function(n){n=Ae(n),t[n]=Ri(t[n],t)}),t}),wf=Zr(),Af=Zr(true),Of=ar(function(t,n){return function(r){return Dn(r,t,n)}}),kf=ar(function(t,n){return function(r){return Dn(t,r,n)}}),Ef=Gr(l),Sf=Gr(i),If=Gr(_),Rf=Hr(),Wf=Hr(true),Bf=Kr(function(t,n){return t+n},0),Mf=te("ceil"),Cf=Kr(function(t,n){return t/n},1),Lf=te("floor"),Df=Kr(function(t,n){return t*n},1),zf=te("round"),Uf=Kr(function(t,n){return t-n},0);return St.after=function(t,n){
+if(typeof n!="function")throw new Uu("Expected a function");return t=hu(t),function(){if(1>--t)return n.apply(this,arguments)}},St.ary=Pe,St.assign=Yi,St.assignIn=Hi,St.assignInWith=Qi,St.assignWith=Xi,St.at=tf,St.before=Ze,St.bind=Ri,St.bindAll=mf,St.bindKey=Wi,St.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Fi(t)?t:[t]},St.chain=De,St.chunk=function(t,n,r){if(n=(r?de(t,n,r):n===N)?1:go(hu(n),0),r=t?t.length:0,!r||1>n)return[];for(var e=0,u=0,o=Cu(ao(r/n));en?0:n,e)):[]},St.dropRight=function(t,n,r){var e=t?t.length:0;return e?(n=r||n===N?1:hu(n),n=e-n,sr(t,0,0>n?0:n)):[]},St.dropRightWhile=function(t,n){
+return t&&t.length?br(t,fe(n,3),true,true):[]},St.dropWhile=function(t,n){return t&&t.length?br(t,fe(n,3),true):[]},St.fill=function(t,n,r,e){var u=t?t.length:0;if(!u)return[];for(r&&typeof r!="number"&&de(t,n,r)&&(r=0,e=u),u=t.length,r=hu(r),0>r&&(r=-r>u?0:u+r),e=e===N||e>u?u:hu(e),0>e&&(e+=u),e=r>e?0:pu(e);r>>0,r?(t=gu(t))&&(typeof n=="string"||null!=n&&!qi(n))&&(n=dr(n),""==n&&Ct.test(t))?Or(t.match(Bt),0,r):wo.call(t,n,r):[]},St.spread=function(t,n){if(typeof t!="function")throw new Uu("Expected a function");return n=n===N?0:go(hu(n),0),ar(function(e){
+var u=e[n];return e=Or(e,0,n),u&&s(e,u),r(t,this,e)})},St.tail=function(t){var n=t?t.length:0;return n?sr(t,1,n):[]},St.take=function(t,n,r){return t&&t.length?(n=r||n===N?1:hu(n),sr(t,0,0>n?0:n)):[]},St.takeRight=function(t,n,r){var e=t?t.length:0;return e?(n=r||n===N?1:hu(n),n=e-n,sr(t,0>n?0:n,e)):[]},St.takeRightWhile=function(t,n){return t&&t.length?br(t,fe(n,3),false,true):[]},St.takeWhile=function(t,n){return t&&t.length?br(t,fe(n,3)):[]},St.tap=function(t,n){return n(t),t},St.throttle=function(t,n,r){
+var e=true,u=true;if(typeof t!="function")throw new Uu("Expected a function");return uu(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),Ke(t,n,{leading:e,maxWait:n,trailing:u})},St.thru=ze,St.toArray=lu,St.toPairs=sf,St.toPairsIn=hf,St.toPath=function(t){return Fi(t)?l(t,Ae):au(t)?[t]:Wr(ri(t))},St.toPlainObject=vu,St.transform=function(t,n,r){var e=Fi(t)||Ki(t);if(n=fe(n,4),null==r)if(e||uu(t)){var o=t.constructor;r=e?Fi(t)?new o:[]:nu(o)?bn(to(t)):{}}else r={};return(e?u:kn)(t,function(t,e,u){
+return n(r,t,e,u)}),r},St.unary=function(t){return Pe(t,1)},St.union=si,St.unionBy=hi,St.unionWith=pi,St.uniq=function(t){return t&&t.length?yr(t):[]},St.uniqBy=function(t,n){return t&&t.length?yr(t,fe(n,2)):[]},St.uniqWith=function(t,n){return t&&t.length?yr(t,N,n):[]},St.unset=function(t,n){var r;if(null==t)r=true;else{r=t;var e=n,e=ye(e,r)?[e]:Ar(e);r=we(r,e),e=Ae(We(e)),r=!(null!=r&&qu.call(r,e))||delete r[e]}return r},St.unzip=Ce,St.unzipWith=Le,St.update=function(t,n,r){return null==t?t:lr(t,n,(typeof r=="function"?r:Eu)(In(t,n)),void 0);
+},St.updateWith=function(t,n,r,e){return e=typeof e=="function"?e:N,null!=t&&(t=lr(t,n,(typeof r=="function"?r:Eu)(In(t,n)),e)),t},St.values=mu,St.valuesIn=function(t){return null==t?[]:I(t,xu(t))},St.without=_i,St.words=Ou,St.wrap=function(t,n){return n=null==n?Eu:n,Li(n,t)},St.xor=vi,St.xorBy=gi,St.xorWith=di,St.zip=yi,St.zipObject=function(t,n){return mr(t||[],n||[],ln)},St.zipObjectDeep=function(t,n){return mr(t||[],n||[],lr)},St.zipWith=bi,St.entries=sf,St.entriesIn=hf,St.extend=Hi,St.extendWith=Qi,
+Iu(St,St),St.add=Bf,St.attempt=jf,St.camelCase=pf,St.capitalize=wu,St.ceil=Mf,St.clamp=function(t,n,r){return r===N&&(r=n,n=N),r!==N&&(r=_u(r),r=r===r?r:0),n!==N&&(n=_u(n),n=n===n?n:0),vn(_u(t),n,r)},St.clone=function(t){return gn(t,false,true)},St.cloneDeep=function(t){return gn(t,true,true)},St.cloneDeepWith=function(t,n){return gn(t,true,true,n)},St.cloneWith=function(t,n){return gn(t,false,true,n)},St.conformsTo=function(t,n){return null==n||yn(t,n,bu(n))},St.deburr=Au,St.defaultTo=function(t,n){return null==t||t!==t?n:t;
+},St.divide=Cf,St.endsWith=function(t,n,r){t=gu(t),n=dr(n);var e=t.length,e=r=r===N?e:vn(hu(r),0,e);return r-=n.length,0<=r&&t.slice(r,e)==n},St.eq=Ye,St.escape=function(t){return(t=gu(t))&&Q.test(t)?t.replace(Y,en):t},St.escapeRegExp=function(t){return(t=gu(t))&&ft.test(t)?t.replace(it,"\\$&"):t},St.every=function(t,n,r){var e=Fi(t)?i:mn;return r&&de(t,n,r)&&(n=N),e(t,fe(n,3))},St.find=mi,St.findIndex=Se,St.findKey=function(t,n){return v(t,fe(n,3),kn)},St.findLast=wi,St.findLastIndex=Ie,St.findLastKey=function(t,n){
+return v(t,fe(n,3),En)},St.floor=Lf,St.forEach=$e,St.forEachRight=Fe,St.forIn=function(t,n){return null==t?t:Zo(t,fe(n,3),xu)},St.forInRight=function(t,n){return null==t?t:qo(t,fe(n,3),xu)},St.forOwn=function(t,n){return t&&kn(t,fe(n,3))},St.forOwnRight=function(t,n){return t&&En(t,fe(n,3))},St.get=du,St.gt=Ui,St.gte=$i,St.has=function(t,n){return null!=t&&se(t,n,Bn)},St.hasIn=yu,St.head=Re,St.identity=Eu,St.includes=function(t,n,r,e){return t=Qe(t)?t:mu(t),r=r&&!e?hu(r):0,e=t.length,0>r&&(r=go(e+r,0)),
+cu(t)?r<=e&&-1r&&(r=go(e+r,0)),d(t,n,r)):-1},St.inRange=function(t,n,r){return n=su(n),r===N?(r=n,n=0):r=su(r),t=_u(t),t>=yo(n,r)&&t=t},St.isSet=Vi,St.isString=cu,St.isSymbol=au,St.isTypedArray=Ki,St.isUndefined=function(t){return t===N},St.isWeakMap=function(t){return ou(t)&&"[object WeakMap]"==Et(t)},St.isWeakSet=function(t){return ou(t)&&"[object WeakSet]"==Gu.call(t)},St.join=function(t,n){return t?_o.call(t,n):""},St.kebabCase=_f,St.last=We,St.lastIndexOf=function(t,n,r){var e=t?t.length:0;if(!e)return-1;var u=e;if(r!==N&&(u=hu(r),
+u=(0>u?go(e+u,0):yo(u,e-1))+1),n!==n)return g(t,b,u-1,true);for(;u--;)if(t[u]===n)return u;return-1},St.lowerCase=vf,St.lowerFirst=gf,St.lt=Gi,St.lte=Ji,St.max=function(t){return t&&t.length?wn(t,Eu,Wn):N},St.maxBy=function(t,n){return t&&t.length?wn(t,fe(n,2),Wn):N},St.mean=function(t){return x(t,Eu)},St.meanBy=function(t,n){return x(t,fe(n,2))},St.min=function(t){return t&&t.length?wn(t,Eu,Jn):N},St.minBy=function(t,n){return t&&t.length?wn(t,fe(n,2),Jn):N},St.stubArray=Bu,St.stubFalse=Mu,St.stubObject=function(){
+return{}},St.stubString=function(){return""},St.stubTrue=function(){return true},St.multiply=Df,St.nth=function(t,n){return t&&t.length?tr(t,hu(n)):N},St.noConflict=function(){return qt._===this&&(qt._=Ju),this},St.noop=Ru,St.now=Ii,St.pad=function(t,n,r){t=gu(t);var e=(n=hu(n))?F(t):0;return!n||e>=n?t:(n=(n-e)/2,Jr(lo(n),r)+t+Jr(ao(n),r))},St.padEnd=function(t,n,r){t=gu(t);var e=(n=hu(n))?F(t):0;return n&&en){var e=t;t=n,n=e}return r||t%1||n%1?(r=xo(),yo(t+r*(n-t+Tt("1e-"+((r+"").length-1))),n)):fr(t,n)},St.reduce=function(t,n,r){var e=Fi(t)?h:w,u=3>arguments.length;return e(t,fe(n,4),r,u,No);
+},St.reduceRight=function(t,n,r){var e=Fi(t)?p:w,u=3>arguments.length;return e(t,fe(n,4),r,u,Po)},St.repeat=function(t,n,r){return n=(r?de(t,n,r):n===N)?1:hu(n),cr(gu(t),n)},St.replace=function(){var t=arguments,n=gu(t[0]);return 3>t.length?n:jo.call(n,t[1],t[2])},St.result=function(t,n,r){n=ye(n,t)?[n]:Ar(n);var e=-1,u=n.length;for(u||(t=N,u=1);++et||9007199254740991=o)return t;if(o=r-F(e),1>o)return e;if(r=i?Or(i,0,o).join(""):t.slice(0,o),u===N)return r+e;
+if(i&&(o+=r.length-o),qi(u)){if(t.slice(o).search(u)){var f=r;for(u.global||(u=zu(u.source,gu(dt.exec(u))+"g")),u.lastIndex=0;i=u.exec(f);)var c=i.index;r=r.slice(0,c===N?o:c)}}else t.indexOf(dr(u),o)!=o&&(u=r.lastIndexOf(u),-1u.__dir__?"Right":"")}),u},Ft.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse();
+}}),u(["filter","map","takeWhile"],function(t,n){var r=n+1,e=1==r||3==r;Ft.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:fe(t,3),type:r}),n.__filtered__=n.__filtered__||e,n}}),u(["head","last"],function(t,n){var r="take"+(n?"Right":"");Ft.prototype[t]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(t,n){var r="drop"+(n?"":"Right");Ft.prototype[t]=function(){return this.__filtered__?new Ft(this):this[r](1)}}),Ft.prototype.compact=function(){
+return this.filter(Eu)},Ft.prototype.find=function(t){return this.filter(t).head()},Ft.prototype.findLast=function(t){return this.reverse().find(t)},Ft.prototype.invokeMap=ar(function(t,n){return typeof t=="function"?new Ft(this):this.map(function(r){return Dn(r,t,n)})}),Ft.prototype.reject=function(t){return this.filter(Je(fe(t)))},Ft.prototype.slice=function(t,n){t=hu(t);var r=this;return r.__filtered__&&(0n)?new Ft(r):(0>t?r=r.takeRight(-t):t&&(r=r.drop(t)),n!==N&&(n=hu(n),r=0>n?r.dropRight(-n):r.take(n-t)),
+r)},Ft.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Ft.prototype.toArray=function(){return this.take(4294967295)},kn(Ft.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),e=/^(?:head|last)$/.test(n),u=St[e?"take"+("last"==n?"Right":""):n],o=e||/^find/.test(n);u&&(St.prototype[n]=function(){function n(t){return t=u.apply(St,s([t],f)),e&&h?t[0]:t}var i=this.__wrapped__,f=e?[1]:arguments,c=i instanceof Ft,a=f[0],l=c||Fi(i);l&&r&&typeof a=="function"&&1!=a.length&&(c=l=false);
+var h=this.__chain__,p=!!this.__actions__.length,a=o&&!h,c=c&&!p;return!o&&l?(i=c?i:new Ft(this),i=t.apply(i,f),i.__actions__.push({func:ze,args:[n],thisArg:N}),new $t(i,h)):a&&c?t.apply(this,f):(i=this.thru(n),a?e?i.value()[0]:i.value():i)})}),u("pop push shift sort splice unshift".split(" "),function(t){var n=$u[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",e=/^(?:pop|shift)$/.test(t);St.prototype[t]=function(){var t=arguments;if(e&&!this.__chain__){var u=this.value();return n.apply(Fi(u)?u:[],t);
+}return this[r](function(r){return n.apply(Fi(r)?r:[],t)})}}),kn(Ft.prototype,function(t,n){var r=St[n];if(r){var e=r.name+"";(Mo[e]||(Mo[e]=[])).push({name:n,func:r})}}),Mo[qr(N,2).name]=[{name:"wrapper",func:N}],Ft.prototype.clone=function(){var t=new Ft(this.__wrapped__);return t.__actions__=Wr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Wr(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Wr(this.__views__),t},Ft.prototype.reverse=function(){
+if(this.__filtered__){var t=new Ft(this);t.__dir__=-1,t.__filtered__=true}else t=this.clone(),t.__dir__*=-1;return t},Ft.prototype.value=function(){var t,n=this.__wrapped__.value(),r=this.__dir__,e=Fi(n),u=0>r,o=e?n.length:0;t=o;for(var i=this.__views__,f=0,c=-1,a=i.length;++co||o==t&&a==t)return xr(n,this.__actions__);e=[];t:for(;t--&&c=this.__values__.length,n=t?N:this.__values__[this.__index__++];
+return{done:t,value:n}},St.prototype.plant=function(t){for(var n,r=this;r instanceof It;){var e=Ee(r);e.__index__=0,e.__values__=N,n?u.__wrapped__=e:n=e;var u=e,r=r.__wrapped__}return u.__wrapped__=t,n},St.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof Ft?(this.__actions__.length&&(t=new Ft(this)),t=t.reverse(),t.__actions__.push({func:ze,args:[Me],thisArg:N}),new $t(t,this.__chain__)):this.thru(Me)},St.prototype.toJSON=St.prototype.valueOf=St.prototype.value=function(){return xr(this.__wrapped__,this.__actions__);
+},St.prototype.first=St.prototype.head,no&&(St.prototype[no]=Ue),St}var N,P=1/0,Z=NaN,q=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],V=/\b__p\+='';/g,K=/\b(__p\+=)''\+/g,G=/(__e\(.*?\)|\b__t\))\+'';/g,J=/&(?:amp|lt|gt|quot|#39|#96);/g,Y=/[&<>"'`]/g,H=RegExp(J.source),Q=RegExp(Y.source),X=/<%-([\s\S]+?)%>/g,tt=/<%([\s\S]+?)%>/g,nt=/<%=([\s\S]+?)%>/g,rt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,et=/^\w*$/,ut=/^\./,ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,it=/[\\^$.*+?()[\]{}|]/g,ft=RegExp(it.source),ct=/^\s+|\s+$/g,at=/^\s+/,lt=/\s+$/,st=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ht=/\{\n\/\* \[wrapped with (.+)\] \*/,pt=/,? & /,_t=/[a-zA-Z0-9]+/g,vt=/\\(\\)?/g,gt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,dt=/\w*$/,yt=/^0x/i,bt=/^[-+]0x[0-9a-f]+$/i,xt=/^0b[01]+$/i,jt=/^\[object .+?Constructor\]$/,mt=/^0o[0-7]+$/i,wt=/^(?:0|[1-9]\d*)$/,At=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Ot=/($^)/,kt=/['\n\r\u2028\u2029\\]/g,Et="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*",St="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+Et,It="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",Rt=RegExp("['\u2019]","g"),Wt=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),Bt=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+It+Et,"g"),Mt=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d+",St].join("|"),"g"),Ct=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),Lt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Dt="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),zt={};
+zt["[object Float32Array]"]=zt["[object Float64Array]"]=zt["[object Int8Array]"]=zt["[object Int16Array]"]=zt["[object Int32Array]"]=zt["[object Uint8Array]"]=zt["[object Uint8ClampedArray]"]=zt["[object Uint16Array]"]=zt["[object Uint32Array]"]=true,zt["[object Arguments]"]=zt["[object Array]"]=zt["[object ArrayBuffer]"]=zt["[object Boolean]"]=zt["[object DataView]"]=zt["[object Date]"]=zt["[object Error]"]=zt["[object Function]"]=zt["[object Map]"]=zt["[object Number]"]=zt["[object Object]"]=zt["[object RegExp]"]=zt["[object Set]"]=zt["[object String]"]=zt["[object WeakMap]"]=false;
+var Ut={};Ut["[object Arguments]"]=Ut["[object Array]"]=Ut["[object ArrayBuffer]"]=Ut["[object DataView]"]=Ut["[object Boolean]"]=Ut["[object Date]"]=Ut["[object Float32Array]"]=Ut["[object Float64Array]"]=Ut["[object Int8Array]"]=Ut["[object Int16Array]"]=Ut["[object Int32Array]"]=Ut["[object Map]"]=Ut["[object Number]"]=Ut["[object Object]"]=Ut["[object RegExp]"]=Ut["[object Set]"]=Ut["[object String]"]=Ut["[object Symbol]"]=Ut["[object Uint8Array]"]=Ut["[object Uint8ClampedArray]"]=Ut["[object Uint16Array]"]=Ut["[object Uint32Array]"]=true,
+Ut["[object Error]"]=Ut["[object Function]"]=Ut["[object WeakMap]"]=false;var $t,Ft={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Tt=parseFloat,Nt=parseInt,Pt=typeof global=="object"&&global&&global.Object===Object&&global,Zt=typeof self=="object"&&self&&self.Object===Object&&self,qt=Pt||Zt||Function("return this")(),Vt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Kt=Vt&&typeof module=="object"&&module&&!module.nodeType&&module,Gt=Kt&&Kt.exports===Vt,Jt=Gt&&Pt.g;
+t:{try{$t=Jt&&Jt.f("util");break t}catch(t){}$t=void 0}var Yt=$t&&$t.isArrayBuffer,Ht=$t&&$t.isDate,Qt=$t&&$t.isMap,Xt=$t&&$t.isRegExp,tn=$t&&$t.isSet,nn=$t&&$t.isTypedArray,rn=m({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i",
+"\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"}),en=m({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"}),un=m({"&":"&","<":"<",">":">",""":'"',"'":"'",
+"`":"`"}),on=T();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(qt._=on, define(function(){return on})):Kt?((Kt.exports=on)._=on,Vt._=on):qt._=on}).call(this);
\ No newline at end of file
diff --git a/dist/mapping.fp.js b/dist/mapping.fp.js
index 4d9c62b037..9f4ad2c3f2 100644
--- a/dist/mapping.fp.js
+++ b/dist/mapping.fp.js
@@ -129,10 +129,10 @@ return /******/ (function(modules) { // webpackBootstrap
'1': [
'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',
'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',
- 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
- 'mergeAll', 'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest',
- 'reverse', 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd',
- 'trimStart', 'uniqueId', 'words', 'zipAll'
+ 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',
+ 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',
+ 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
+ 'uniqueId', 'words', 'zipAll'
],
'2': [
'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',
diff --git a/doc/README.md b/doc/README.md
index 9a52cbbabf..815c7bc888 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -1,4 +1,4 @@
-# lodash v4.14.1
+# lodash v4.14.2
@@ -414,8 +414,8 @@
-### `_.chunk(array, [size=1])`
-[#](#_chunkarray-size1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6322 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.chunk "See the npm package") [Ⓣ][1]
+_.chunk(array, [size=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6350 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.chunk "See the npm package") [Ⓣ][1]
Creates an array of elements split into groups the length of `size`.
If `array` can't be split evenly, the final chunk will be the remaining
@@ -444,8 +444,8 @@ _.chunk(['a', 'b', 'c', 'd'], 3);
-### `_.compact(array)`
-[#](#_compactarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6357 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.compact "See the npm package") [Ⓣ][1]
+_.compact(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6385 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.compact "See the npm package") [Ⓣ][1]
Creates an array with all falsey values removed. The values `false`, `null`,
`0`, `""`, `undefined`, and `NaN` are falsey.
@@ -469,8 +469,8 @@ _.compact([0, 1, false, 2, '', 3]);
-### `_.concat(array, [values])`
-[#](#_concatarray-values) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6394 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.concat "See the npm package") [Ⓣ][1]
+_.concat(array, [values])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6422 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.concat "See the npm package") [Ⓣ][1]
Creates a new array concatenating `array` with any additional arrays
and/or values.
@@ -501,11 +501,11 @@ console.log(array);
-### `_.difference(array, [values])`
-[#](#_differencearray-values) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6429 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.difference "See the npm package") [Ⓣ][1]
+_.difference(array, [values])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6457 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.difference "See the npm package") [Ⓣ][1]
Creates an array of `array` values not included in the other given arrays
-using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
for equality comparisons. The order of result values is determined by the
order they occur in the first array.
@@ -532,8 +532,8 @@ _.difference([2, 1], [2, 3]);
-### `_.differenceBy(array, [values], [iteratee=_.identity])`
-[#](#_differencebyarray-values-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6460 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.differenceby "See the npm package") [Ⓣ][1]
+_.differenceBy(array, [values], [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6488 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.differenceby "See the npm package") [Ⓣ][1]
This method is like `_.difference` except that it accepts `iteratee` which
is invoked for each element of `array` and `values` to generate the criterion
@@ -568,8 +568,8 @@ _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
-### `_.differenceWith(array, [values], [comparator])`
-[#](#_differencewitharray-values-comparator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6493 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.differencewith "See the npm package") [Ⓣ][1]
+_.differenceWith(array, [values], [comparator])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6521 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.differencewith "See the npm package") [Ⓣ][1]
This method is like `_.difference` except that it accepts `comparator`
which is invoked to compare elements of `array` to `values`. Result values
@@ -602,8 +602,8 @@ _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);
-### `_.drop(array, [n=1])`
-[#](#_droparray-n1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6528 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.drop "See the npm package") [Ⓣ][1]
+_.drop(array, [n=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6556 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.drop "See the npm package") [Ⓣ][1]
Creates a slice of `array` with `n` elements dropped from the beginning.
@@ -636,8 +636,8 @@ _.drop([1, 2, 3], 0);
-### `_.dropRight(array, [n=1])`
-[#](#_droprightarray-n1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6562 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.dropright "See the npm package") [Ⓣ][1]
+_.dropRight(array, [n=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6590 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.dropright "See the npm package") [Ⓣ][1]
Creates a slice of `array` with `n` elements dropped from the end.
@@ -670,8 +670,8 @@ _.dropRight([1, 2, 3], 0);
-### `_.dropRightWhile(array, [predicate=_.identity])`
-[#](#_droprightwhilearray-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6607 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.droprightwhile "See the npm package") [Ⓣ][1]
+_.dropRightWhile(array, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6635 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.droprightwhile "See the npm package") [Ⓣ][1]
Creates a slice of `array` excluding elements dropped from the end.
Elements are dropped until `predicate` returns falsey. The predicate is
@@ -715,8 +715,8 @@ _.dropRightWhile(users, 'active');
-### `_.dropWhile(array, [predicate=_.identity])`
-[#](#_dropwhilearray-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6649 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.dropwhile "See the npm package") [Ⓣ][1]
+_.dropWhile(array, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6677 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.dropwhile "See the npm package") [Ⓣ][1]
Creates a slice of `array` excluding elements dropped from the beginning.
Elements are dropped until `predicate` returns falsey. The predicate is
@@ -760,8 +760,8 @@ _.dropWhile(users, 'active');
-### `_.fill(array, value, [start=0], [end=array.length])`
-[#](#_fillarray-value-start0-endarraylength) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6684 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.fill "See the npm package") [Ⓣ][1]
+_.fill(array, value, [start=0], [end=array.length])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6712 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.fill "See the npm package") [Ⓣ][1]
Fills elements of `array` with `value` from `start` up to, but not
including, `end`.
@@ -800,8 +800,8 @@ _.fill([4, 6, 8, 10], '*', 1, 3);
-### `_.findIndex(array, [predicate=_.identity], [fromIndex=0])`
-[#](#_findindexarray-predicate_identity-fromindex0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6732 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findindex "See the npm package") [Ⓣ][1]
+_.findIndex(array, [predicate=_.identity], [fromIndex=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6760 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findindex "See the npm package") [Ⓣ][1]
This method is like `_.find` except that it returns the index of the first
element `predicate` returns truthy for instead of the element itself.
@@ -845,8 +845,8 @@ _.findIndex(users, 'active');
-### `_.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1])`
-[#](#_findlastindexarray-predicate_identity-fromindexarraylength-1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6780 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlastindex "See the npm package") [Ⓣ][1]
+_.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6808 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlastindex "See the npm package") [Ⓣ][1]
This method is like `_.findIndex` except that it iterates over elements
of `collection` from right to left.
@@ -890,8 +890,8 @@ _.findLastIndex(users, 'active');
-### `_.flatten(array)`
-[#](#_flattenarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6809 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatten "See the npm package") [Ⓣ][1]
+_.flatten(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6837 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatten "See the npm package") [Ⓣ][1]
Flattens `array` a single level deep.
@@ -914,8 +914,8 @@ _.flatten([1, [2, [3, [4]], 5]]);
-### `_.flattenDeep(array)`
-[#](#_flattendeeparray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6828 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flattendeep "See the npm package") [Ⓣ][1]
+_.flattenDeep(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6856 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flattendeep "See the npm package") [Ⓣ][1]
Recursively flattens `array`.
@@ -938,8 +938,8 @@ _.flattenDeep([1, [2, [3, [4]], 5]]);
-### `_.flattenDepth(array, [depth=1])`
-[#](#_flattendeptharray-depth1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6853 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flattendepth "See the npm package") [Ⓣ][1]
+_.flattenDepth(array, [depth=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6881 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flattendepth "See the npm package") [Ⓣ][1]
Recursively flatten `array` up to `depth` times.
@@ -968,8 +968,8 @@ _.flattenDepth(array, 2);
-### `_.fromPairs(pairs)`
-[#](#_frompairspairs) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6877 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.frompairs "See the npm package") [Ⓣ][1]
+_.fromPairs(pairs)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6905 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.frompairs "See the npm package") [Ⓣ][1]
The inverse of `_.toPairs`; this method returns an object composed
from key-value `pairs`.
@@ -993,8 +993,8 @@ _.fromPairs([['a', 1], ['b', 2]]);
-### `_.head(array)`
-[#](#_headarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6907 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.head "See the npm package") [Ⓣ][1]
+_.head(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6935 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.head "See the npm package") [Ⓣ][1]
Gets the first element of `array`.
@@ -1023,11 +1023,11 @@ _.head([]);
-### `_.indexOf(array, value, [fromIndex=0])`
-[#](#_indexofarray-value-fromindex0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6934 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.indexof "See the npm package") [Ⓣ][1]
+_.indexOf(array, value, [fromIndex=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6962 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.indexof "See the npm package") [Ⓣ][1]
Gets the index at which the first occurrence of `value` is found in `array`
-using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
for equality comparisons. If `fromIndex` is negative, it's used as the
offset from the end of `array`.
@@ -1056,8 +1056,8 @@ _.indexOf([1, 2, 1, 2], 2, 2);
-### `_.initial(array)`
-[#](#_initialarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6960 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.initial "See the npm package") [Ⓣ][1]
+_.initial(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L6988 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.initial "See the npm package") [Ⓣ][1]
Gets all but the last element of `array`.
@@ -1080,11 +1080,11 @@ _.initial([1, 2, 3]);
-### `_.intersection([arrays])`
-[#](#_intersectionarrays) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L6981 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersection "See the npm package") [Ⓣ][1]
+_.intersection([arrays])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7010 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersection "See the npm package") [Ⓣ][1]
Creates an array of unique values that are included in all given arrays
-using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
for equality comparisons. The order of result values is determined by the
order they occur in the first array.
@@ -1107,8 +1107,8 @@ _.intersection([2, 1], [2, 3]);
-### `_.intersectionBy([arrays], [iteratee=_.identity])`
-[#](#_intersectionbyarrays-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7010 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersectionby "See the npm package") [Ⓣ][1]
+_.intersectionBy([arrays], [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7039 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersectionby "See the npm package") [Ⓣ][1]
This method is like `_.intersection` except that it accepts `iteratee`
which is invoked for each element of each `arrays` to generate the criterion
@@ -1139,8 +1139,8 @@ _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
-### `_.intersectionWith([arrays], [comparator])`
-[#](#_intersectionwitharrays-comparator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7045 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersectionwith "See the npm package") [Ⓣ][1]
+_.intersectionWith([arrays], [comparator])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7074 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.intersectionwith "See the npm package") [Ⓣ][1]
This method is like `_.intersection` except that it accepts `comparator`
which is invoked to compare elements of `arrays`. Result values are chosen
@@ -1170,8 +1170,8 @@ _.intersectionWith(objects, others, _.isEqual);
-### `_.join(array, [separator=','])`
-[#](#_joinarray-separator-) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7074 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.join "See the npm package") [Ⓣ][1]
+_.join(array, [separator=','])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7103 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.join "See the npm package") [Ⓣ][1]
Converts all elements in `array` into a string separated by `separator`.
@@ -1195,8 +1195,8 @@ _.join(['a', 'b', 'c'], '~');
-### `_.last(array)`
-[#](#_lastarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7092 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.last "See the npm package") [Ⓣ][1]
+_.last(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7121 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.last "See the npm package") [Ⓣ][1]
Gets the last element of `array`.
@@ -1219,8 +1219,8 @@ _.last([1, 2, 3]);
-### `_.lastIndexOf(array, value, [fromIndex=array.length-1])`
-[#](#_lastindexofarray-value-fromindexarraylength-1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7118 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lastindexof "See the npm package") [Ⓣ][1]
+_.lastIndexOf(array, value, [fromIndex=array.length-1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7147 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lastindexof "See the npm package") [Ⓣ][1]
This method is like `_.indexOf` except that it iterates over elements of
`array` from right to left.
@@ -1250,8 +1250,8 @@ _.lastIndexOf([1, 2, 1, 2], 2, 2);
-### `_.nth(array, [n=0])`
-[#](#_ntharray-n0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7164 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.nth "See the npm package") [Ⓣ][1]
+_.nth(array, [n=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7193 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.nth "See the npm package") [Ⓣ][1]
Gets the element at index `n` of `array`. If `n` is negative, the nth
element from the end is returned.
@@ -1281,11 +1281,11 @@ _.nth(array, -2);
-### `_.pull(array, [values])`
-[#](#_pullarray-values) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7191 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pull "See the npm package") [Ⓣ][1]
+_.pull(array, [values])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7220 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pull "See the npm package") [Ⓣ][1]
Removes all given values from `array` using
-[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
for equality comparisons.
@@ -1315,8 +1315,8 @@ console.log(array);
-### `_.pullAll(array, values)`
-[#](#_pullallarray-values) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7213 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullall "See the npm package") [Ⓣ][1]
+_.pullAll(array, values)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7242 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullall "See the npm package") [Ⓣ][1]
This method is like `_.pull` except that it accepts an array of values to remove.
@@ -1346,8 +1346,8 @@ console.log(array);
-### `_.pullAllBy(array, values, [iteratee=_.identity])`
-[#](#_pullallbyarray-values-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7243 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullallby "See the npm package") [Ⓣ][1]
+_.pullAllBy(array, values, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7272 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullallby "See the npm package") [Ⓣ][1]
This method is like `_.pullAll` except that it accepts `iteratee` which is
invoked for each element of `array` and `values` to generate the criterion
@@ -1380,8 +1380,8 @@ console.log(array);
-### `_.pullAllWith(array, values, [comparator])`
-[#](#_pullallwitharray-values-comparator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7272 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullallwith "See the npm package") [Ⓣ][1]
+_.pullAllWith(array, values, [comparator])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7301 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullallwith "See the npm package") [Ⓣ][1]
This method is like `_.pullAll` except that it accepts `comparator` which
is invoked to compare elements of `array` to `values`. The comparator is
@@ -1414,8 +1414,8 @@ console.log(array);
-### `_.pullAt(array, [indexes])`
-[#](#_pullatarray-indexes) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7302 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullat "See the npm package") [Ⓣ][1]
+_.pullAt(array, [indexes])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7331 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pullat "See the npm package") [Ⓣ][1]
Removes elements from `array` corresponding to `indexes` and returns an
array of removed elements.
@@ -1449,8 +1449,8 @@ console.log(pulled);
-### `_.remove(array, [predicate=_.identity])`
-[#](#_removearray-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7344 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.remove "See the npm package") [Ⓣ][1]
+_.remove(array, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7373 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.remove "See the npm package") [Ⓣ][1]
Removes all elements from `array` that `predicate` returns truthy for
and returns an array of the removed elements. The predicate is invoked
@@ -1488,8 +1488,8 @@ console.log(evens);
-### `_.reverse(array)`
-[#](#_reversearray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7388 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reverse "See the npm package") [Ⓣ][1]
+_.reverse(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7417 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reverse "See the npm package") [Ⓣ][1]
Reverses `array` so that the first element becomes the last, the second
element becomes the second to last, and so on.
@@ -1522,8 +1522,8 @@ console.log(array);
-### `_.slice(array, [start=0], [end=array.length])`
-[#](#_slicearray-start0-endarraylength) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7408 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.slice "See the npm package") [Ⓣ][1]
+_.slice(array, [start=0], [end=array.length])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7437 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.slice "See the npm package") [Ⓣ][1]
Creates a slice of `array` from `start` up to, but not including, `end`.
@@ -1548,8 +1548,8 @@ returned.
-### `_.sortedIndex(array, value)`
-[#](#_sortedindexarray-value) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7441 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindex "See the npm package") [Ⓣ][1]
+_.sortedIndex(array, value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7470 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindex "See the npm package") [Ⓣ][1]
Uses a binary search to determine the lowest index at which `value`
should be inserted into `array` in order to maintain its sort order.
@@ -1574,8 +1574,8 @@ _.sortedIndex([30, 50], 40);
-### `_.sortedIndexBy(array, value, [iteratee=_.identity])`
-[#](#_sortedindexbyarray-value-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7471 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindexby "See the npm package") [Ⓣ][1]
+_.sortedIndexBy(array, value, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7500 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindexby "See the npm package") [Ⓣ][1]
This method is like `_.sortedIndex` except that it accepts `iteratee`
which is invoked for `value` and each element of `array` to compute their
@@ -1608,8 +1608,8 @@ _.sortedIndexBy(objects, { 'x': 4 }, 'x');
-### `_.sortedIndexOf(array, value)`
-[#](#_sortedindexofarray-value) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7491 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindexof "See the npm package") [Ⓣ][1]
+_.sortedIndexOf(array, value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7520 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedindexof "See the npm package") [Ⓣ][1]
This method is like `_.indexOf` except that it performs a binary
search on a sorted `array`.
@@ -1634,8 +1634,8 @@ _.sortedIndexOf([4, 5, 5, 5, 6], 5);
-### `_.sortedLastIndex(array, value)`
-[#](#_sortedlastindexarray-value) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7520 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindex "See the npm package") [Ⓣ][1]
+_.sortedLastIndex(array, value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7549 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindex "See the npm package") [Ⓣ][1]
This method is like `_.sortedIndex` except that it returns the highest
index at which `value` should be inserted into `array` in order to
@@ -1661,8 +1661,8 @@ _.sortedLastIndex([4, 5, 5, 5, 6], 5);
-### `_.sortedLastIndexBy(array, value, [iteratee=_.identity])`
-[#](#_sortedlastindexbyarray-value-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7550 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindexby "See the npm package") [Ⓣ][1]
+_.sortedLastIndexBy(array, value, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7579 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindexby "See the npm package") [Ⓣ][1]
This method is like `_.sortedLastIndex` except that it accepts `iteratee`
which is invoked for `value` and each element of `array` to compute their
@@ -1695,8 +1695,8 @@ _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');
-### `_.sortedLastIndexOf(array, value)`
-[#](#_sortedlastindexofarray-value) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7570 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindexof "See the npm package") [Ⓣ][1]
+_.sortedLastIndexOf(array, value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7599 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortedlastindexof "See the npm package") [Ⓣ][1]
This method is like `_.lastIndexOf` except that it performs a binary
search on a sorted `array`.
@@ -1721,8 +1721,8 @@ _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);
-### `_.sortedUniq(array)`
-[#](#_sorteduniqarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7596 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sorteduniq "See the npm package") [Ⓣ][1]
+_.sortedUniq(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7625 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sorteduniq "See the npm package") [Ⓣ][1]
This method is like `_.uniq` except that it's designed and optimized
for sorted arrays.
@@ -1746,8 +1746,8 @@ _.sortedUniq([1, 1, 2]);
-### `_.sortedUniqBy(array, [iteratee])`
-[#](#_sorteduniqbyarray-iteratee) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7618 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sorteduniqby "See the npm package") [Ⓣ][1]
+_.sortedUniqBy(array, [iteratee])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7647 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sorteduniqby "See the npm package") [Ⓣ][1]
This method is like `_.uniqBy` except that it's designed and optimized
for sorted arrays.
@@ -1772,8 +1772,8 @@ _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
-### `_.tail(array)`
-[#](#_tailarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7638 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tail "See the npm package") [Ⓣ][1]
+_.tail(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7667 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tail "See the npm package") [Ⓣ][1]
Gets all but the first element of `array`.
@@ -1796,8 +1796,8 @@ _.tail([1, 2, 3]);
-### `_.take(array, [n=1])`
-[#](#_takearray-n1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7667 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.take "See the npm package") [Ⓣ][1]
+_.take(array, [n=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7697 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.take "See the npm package") [Ⓣ][1]
Creates a slice of `array` with `n` elements taken from the beginning.
@@ -1830,8 +1830,8 @@ _.take([1, 2, 3], 0);
-### `_.takeRight(array, [n=1])`
-[#](#_takerightarray-n1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7700 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takeright "See the npm package") [Ⓣ][1]
+_.takeRight(array, [n=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7730 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takeright "See the npm package") [Ⓣ][1]
Creates a slice of `array` with `n` elements taken from the end.
@@ -1864,8 +1864,8 @@ _.takeRight([1, 2, 3], 0);
-### `_.takeRightWhile(array, [predicate=_.identity])`
-[#](#_takerightwhilearray-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7746 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takerightwhile "See the npm package") [Ⓣ][1]
+_.takeRightWhile(array, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7776 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takerightwhile "See the npm package") [Ⓣ][1]
Creates a slice of `array` with elements taken from the end. Elements are
taken until `predicate` returns falsey. The predicate is invoked with
@@ -1909,8 +1909,8 @@ _.takeRightWhile(users, 'active');
-### `_.takeWhile(array, [predicate=_.identity])`
-[#](#_takewhilearray-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7788 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takewhile "See the npm package") [Ⓣ][1]
+_.takeWhile(array, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7818 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.takewhile "See the npm package") [Ⓣ][1]
Creates a slice of `array` with elements taken from the beginning. Elements
are taken until `predicate` returns falsey. The predicate is invoked with
@@ -1954,11 +1954,11 @@ _.takeWhile(users, 'active');
-### `_.union([arrays])`
-[#](#_unionarrays) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7810 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.union "See the npm package") [Ⓣ][1]
+_.union([arrays])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7840 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.union "See the npm package") [Ⓣ][1]
Creates an array of unique values, in order, from all given arrays using
-[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
for equality comparisons.
#### Since
@@ -1980,8 +1980,8 @@ _.union([2], [1, 2]);
-### `_.unionBy([arrays], [iteratee=_.identity])`
-[#](#_unionbyarrays-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7838 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unionby "See the npm package") [Ⓣ][1]
+_.unionBy([arrays], [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7868 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unionby "See the npm package") [Ⓣ][1]
This method is like `_.union` except that it accepts `iteratee` which is
invoked for each element of each `arrays` to generate the criterion by
@@ -2013,8 +2013,8 @@ _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
-### `_.unionWith([arrays], [comparator])`
-[#](#_unionwitharrays-comparator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7867 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unionwith "See the npm package") [Ⓣ][1]
+_.unionWith([arrays], [comparator])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7897 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unionwith "See the npm package") [Ⓣ][1]
This method is like `_.union` except that it accepts `comparator` which
is invoked to compare elements of `arrays`. Result values are chosen from
@@ -2044,11 +2044,11 @@ _.unionWith(objects, others, _.isEqual);
-### `_.uniq(array)`
-[#](#_uniqarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7892 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniq "See the npm package") [Ⓣ][1]
+_.uniq(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7922 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniq "See the npm package") [Ⓣ][1]
Creates a duplicate-free version of an array, using
-[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
for equality comparisons, in which only the first occurrence of each
element is kept.
@@ -2071,8 +2071,8 @@ _.uniq([2, 1, 2]);
-### `_.uniqBy(array, [iteratee=_.identity])`
-[#](#_uniqbyarray-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7920 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqby "See the npm package") [Ⓣ][1]
+_.uniqBy(array, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7950 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqby "See the npm package") [Ⓣ][1]
This method is like `_.uniq` except that it accepts `iteratee` which is
invoked for each element in `array` to generate the criterion by which
@@ -2102,8 +2102,8 @@ _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
-### `_.uniqWith(array, [comparator])`
-[#](#_uniqwitharray-comparator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7945 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqwith "See the npm package") [Ⓣ][1]
+_.uniqWith(array, [comparator])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L7975 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqwith "See the npm package") [Ⓣ][1]
This method is like `_.uniq` except that it accepts `comparator` which
is invoked to compare elements of `array`. The comparator is invoked with
@@ -2131,8 +2131,8 @@ _.uniqWith(objects, _.isEqual);
-### `_.unzip(array)`
-[#](#_unziparray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L7970 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unzip "See the npm package") [Ⓣ][1]
+_.unzip(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8000 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unzip "See the npm package") [Ⓣ][1]
This method is like `_.zip` except that it accepts an array of grouped
elements and creates an array regrouping the elements to their pre-zip
@@ -2160,8 +2160,8 @@ _.unzip(zipped);
-### `_.unzipWith(array, [iteratee=_.identity])`
-[#](#_unzipwitharray-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8007 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unzipwith "See the npm package") [Ⓣ][1]
+_.unzipWith(array, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8037 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unzipwith "See the npm package") [Ⓣ][1]
This method is like `_.unzip` except that it accepts `iteratee` to specify
how regrouped values should be combined. The iteratee is invoked with the
@@ -2190,11 +2190,11 @@ _.unzipWith(zipped, _.add);
-### `_.without(array, [values])`
-[#](#_withoutarray-values) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8040 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.without "See the npm package") [Ⓣ][1]
+_.without(array, [values])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8070 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.without "See the npm package") [Ⓣ][1]
Creates an array excluding all given values using
-[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
for equality comparisons.
@@ -2220,8 +2220,8 @@ _.without([2, 1, 2, 3], 1, 2);
-### `_.xor([arrays])`
-[#](#_xorarrays) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8064 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xor "See the npm package") [Ⓣ][1]
+_.xor([arrays])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8094 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xor "See the npm package") [Ⓣ][1]
Creates an array of unique values that is the
[symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
@@ -2247,8 +2247,8 @@ _.xor([2, 1], [2, 3]);
-### `_.xorBy([arrays], [iteratee=_.identity])`
-[#](#_xorbyarrays-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8091 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xorby "See the npm package") [Ⓣ][1]
+_.xorBy([arrays], [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8121 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xorby "See the npm package") [Ⓣ][1]
This method is like `_.xor` except that it accepts `iteratee` which is
invoked for each element of each `arrays` to generate the criterion by
@@ -2279,8 +2279,8 @@ _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
-### `_.xorWith([arrays], [comparator])`
-[#](#_xorwitharrays-comparator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8119 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xorwith "See the npm package") [Ⓣ][1]
+_.xorWith([arrays], [comparator])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8149 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.xorwith "See the npm package") [Ⓣ][1]
This method is like `_.xor` except that it accepts `comparator` which is
invoked to compare elements of `arrays`. The comparator is invoked with
@@ -2309,8 +2309,8 @@ _.xorWith(objects, others, _.isEqual);
-### `_.zip([arrays])`
-[#](#_ziparrays) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8143 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zip "See the npm package") [Ⓣ][1]
+_.zip([arrays])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8173 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zip "See the npm package") [Ⓣ][1]
Creates an array of grouped elements, the first of which contains the
first elements of the given arrays, the second of which contains the
@@ -2335,8 +2335,8 @@ _.zip(['a', 'b'], [1, 2], [true, false]);
-### `_.zipObject([props=[]], [values=[]])`
-[#](#_zipobjectprops-values) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8161 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipobject "See the npm package") [Ⓣ][1]
+_.zipObject([props=[]], [values=[]])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8191 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipobject "See the npm package") [Ⓣ][1]
This method is like `_.fromPairs` except that it accepts two arrays,
one of property identifiers and one of corresponding values.
@@ -2361,8 +2361,8 @@ _.zipObject(['a', 'b'], [1, 2]);
-### `_.zipObjectDeep([props=[]], [values=[]])`
-[#](#_zipobjectdeepprops-values) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8180 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipobjectdeep "See the npm package") [Ⓣ][1]
+_.zipObjectDeep([props=[]], [values=[]])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8210 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipobjectdeep "See the npm package") [Ⓣ][1]
This method is like `_.zipObject` except that it supports property paths.
@@ -2386,8 +2386,8 @@ _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);
-### `_.zipWith([arrays], [iteratee=_.identity])`
-[#](#_zipwitharrays-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8203 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipwith "See the npm package") [Ⓣ][1]
+_.zipWith([arrays], [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8233 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.zipwith "See the npm package") [Ⓣ][1]
This method is like `_.zip` except that it accepts `iteratee` to specify
how grouped values should be combined. The iteratee is invoked with the
@@ -2421,8 +2421,8 @@ _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
-### `_.countBy(collection, [iteratee=_.identity])`
-[#](#_countbycollection-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8584 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.countby "See the npm package") [Ⓣ][1]
+_.countBy(collection, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8614 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.countby "See the npm package") [Ⓣ][1]
Creates an object composed of keys generated from the results of running
each element of `collection` thru `iteratee`. The corresponding value of
@@ -2453,12 +2453,18 @@ _.countBy(['one', 'two', 'three'], 'length');
-### `_.every(collection, [predicate=_.identity])`
-[#](#_everycollection-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8625 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.every "See the npm package") [Ⓣ][1]
+_.every(collection, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8660 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.every "See the npm package") [Ⓣ][1]
Checks if `predicate` returns truthy for **all** elements of `collection`.
Iteration is stopped once `predicate` returns falsey. The predicate is
invoked with three arguments: *(value, index|key, collection)*.
+
+
+**Note:** This method returns `true` for
+[empty collections](https://en.wikipedia.org/wiki/Empty_set) because
+[everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
+elements of empty collections.
#### Since
0.1.0
@@ -2497,8 +2503,8 @@ _.every(users, 'active');
-### `_.filter(collection, [predicate=_.identity])`
-[#](#_filtercollection-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8671 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.filter "See the npm package") [Ⓣ][1]
+_.filter(collection, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8706 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.filter "See the npm package") [Ⓣ][1]
Iterates over elements of `collection`, returning an array of all elements
`predicate` returns truthy for. The predicate is invoked with three
@@ -2544,8 +2550,8 @@ _.filter(users, 'active');
-### `_.find(collection, [predicate=_.identity], [fromIndex=0])`
-[#](#_findcollection-predicate_identity-fromindex0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8713 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.find "See the npm package") [Ⓣ][1]
+_.find(collection, [predicate=_.identity], [fromIndex=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8748 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.find "See the npm package") [Ⓣ][1]
Iterates over elements of `collection`, returning the first element
`predicate` returns truthy for. The predicate is invoked with three
@@ -2590,8 +2596,8 @@ _.find(users, 'active');
-### `_.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1])`
-[#](#_findlastcollection-predicate_identity-fromindexcollectionlength-1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8735 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlast "See the npm package") [Ⓣ][1]
+_.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8770 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlast "See the npm package") [Ⓣ][1]
This method is like `_.find` except that it iterates over elements of
`collection` from right to left.
@@ -2619,8 +2625,8 @@ _.findLast([1, 2, 3, 4], function(n) {
-### `_.flatMap(collection, [iteratee=_.identity])`
-[#](#_flatmapcollection-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8759 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmap "See the npm package") [Ⓣ][1]
+_.flatMap(collection, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8794 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmap "See the npm package") [Ⓣ][1]
Creates a flattened array of values by running each element in `collection`
thru `iteratee` and flattening the mapped results. The iteratee is invoked
@@ -2650,8 +2656,8 @@ _.flatMap([1, 2], duplicate);
-### `_.flatMapDeep(collection, [iteratee=_.identity])`
-[#](#_flatmapdeepcollection-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8784 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmapdeep "See the npm package") [Ⓣ][1]
+_.flatMapDeep(collection, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8819 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmapdeep "See the npm package") [Ⓣ][1]
This method is like `_.flatMap` except that it recursively flattens the
mapped results.
@@ -2680,8 +2686,8 @@ _.flatMapDeep([1, 2], duplicate);
-### `_.flatMapDepth(collection, [iteratee=_.identity], [depth=1])`
-[#](#_flatmapdepthcollection-iteratee_identity-depth1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8810 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmapdepth "See the npm package") [Ⓣ][1]
+_.flatMapDepth(collection, [iteratee=_.identity], [depth=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8845 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flatmapdepth "See the npm package") [Ⓣ][1]
This method is like `_.flatMap` except that it recursively flattens the
mapped results up to `depth` times.
@@ -2711,8 +2717,8 @@ _.flatMapDepth([1, 2], duplicate, 2);
-### `_.forEach(collection, [iteratee=_.identity])`
-[#](#_foreachcollection-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8845 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.foreach "See the npm package") [Ⓣ][1]
+_.forEach(collection, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8880 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.foreach "See the npm package") [Ⓣ][1]
Iterates over elements of `collection` and invokes `iteratee` for each element.
The iteratee is invoked with three arguments: *(value, index|key, collection)*.
@@ -2753,8 +2759,8 @@ _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
-### `_.forEachRight(collection, [iteratee=_.identity])`
-[#](#_foreachrightcollection-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8870 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.foreachright "See the npm package") [Ⓣ][1]
+_.forEachRight(collection, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8905 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.foreachright "See the npm package") [Ⓣ][1]
This method is like `_.forEach` except that it iterates over elements of
`collection` from right to left.
@@ -2784,8 +2790,8 @@ _.forEachRight([1, 2], function(value) {
-### `_.groupBy(collection, [iteratee=_.identity])`
-[#](#_groupbycollection-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8899 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.groupby "See the npm package") [Ⓣ][1]
+_.groupBy(collection, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8934 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.groupby "See the npm package") [Ⓣ][1]
Creates an object composed of keys generated from the results of running
each element of `collection` thru `iteratee`. The order of grouped values
@@ -2817,12 +2823,12 @@ _.groupBy(['one', 'two', 'three'], 'length');
-### `_.includes(collection, value, [fromIndex=0])`
-[#](#_includescollection-value-fromindex0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8937 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.includes "See the npm package") [Ⓣ][1]
+_.includes(collection, value, [fromIndex=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8972 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.includes "See the npm package") [Ⓣ][1]
Checks if `value` is in `collection`. If `collection` is a string, it's
checked for a substring of `value`, otherwise
-[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
is used for equality comparisons. If `fromIndex` is negative, it's used as
the offset from the end of `collection`.
@@ -2856,8 +2862,8 @@ _.includes('abcd', 'bc');
-### `_.invokeMap(collection, path, [args])`
-[#](#_invokemapcollection-path-args) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8973 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invokemap "See the npm package") [Ⓣ][1]
+_.invokeMap(collection, path, [args])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9008 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invokemap "See the npm package") [Ⓣ][1]
Invokes the method at `path` of each element in `collection`, returning
an array of the results of each invoked method. Any additional arguments
@@ -2888,8 +2894,8 @@ _.invokeMap([123, 456], String.prototype.split, '');
-### `_.keyBy(collection, [iteratee=_.identity])`
-[#](#_keybycollection-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9015 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keyby "See the npm package") [Ⓣ][1]
+_.keyBy(collection, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9050 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keyby "See the npm package") [Ⓣ][1]
Creates an object composed of keys generated from the results of running
each element of `collection` thru `iteratee`. The corresponding value of
@@ -2926,8 +2932,8 @@ _.keyBy(array, 'dir');
-### `_.map(collection, [iteratee=_.identity])`
-[#](#_mapcollection-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9061 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.map "See the npm package") [Ⓣ][1]
+_.map(collection, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9096 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.map "See the npm package") [Ⓣ][1]
Creates an array of values by running each element in `collection` thru
`iteratee`. The iteratee is invoked with three arguments:
@@ -2980,8 +2986,8 @@ _.map(users, 'user');
-### `_.orderBy(collection, [iteratees=[_.identity]], [orders])`
-[#](#_orderbycollection-iteratees_identity-orders) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9095 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.orderby "See the npm package") [Ⓣ][1]
+_.orderBy(collection, [iteratees=[_.identity]], [orders])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9130 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.orderby "See the npm package") [Ⓣ][1]
This method is like `_.sortBy` except that it allows specifying the sort
orders of the iteratees to sort by. If `orders` is unspecified, all values
@@ -3017,8 +3023,8 @@ _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
-### `_.partition(collection, [predicate=_.identity])`
-[#](#_partitioncollection-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9145 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partition "See the npm package") [Ⓣ][1]
+_.partition(collection, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9180 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partition "See the npm package") [Ⓣ][1]
Creates an array of elements split into two groups, the first of which
contains elements `predicate` returns truthy for, the second of which
@@ -3063,8 +3069,8 @@ _.partition(users, 'active');
-### `_.reduce(collection, [iteratee=_.identity], [accumulator])`
-[#](#_reducecollection-iteratee_identity-accumulator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9186 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reduce "See the npm package") [Ⓣ][1]
+_.reduce(collection, [iteratee=_.identity], [accumulator])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9221 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reduce "See the npm package") [Ⓣ][1]
Reduces `collection` to a value which is the accumulated result of running
each element in `collection` thru `iteratee`, where each successive
@@ -3111,8 +3117,8 @@ _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
-### `_.reduceRight(collection, [iteratee=_.identity], [accumulator])`
-[#](#_reducerightcollection-iteratee_identity-accumulator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9215 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reduceright "See the npm package") [Ⓣ][1]
+_.reduceRight(collection, [iteratee=_.identity], [accumulator])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9250 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reduceright "See the npm package") [Ⓣ][1]
This method is like `_.reduce` except that it iterates over elements of
`collection` from right to left.
@@ -3142,8 +3148,8 @@ _.reduceRight(array, function(flattened, other) {
-### `_.reject(collection, [predicate=_.identity])`
-[#](#_rejectcollection-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9256 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reject "See the npm package") [Ⓣ][1]
+_.reject(collection, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9291 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.reject "See the npm package") [Ⓣ][1]
The opposite of `_.filter`; this method returns the elements of `collection`
that `predicate` does **not** return truthy for.
@@ -3185,8 +3191,8 @@ _.reject(users, 'active');
-### `_.sample(collection)`
-[#](#_samplecollection) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9275 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sample "See the npm package") [Ⓣ][1]
+_.sample(collection)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9310 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sample "See the npm package") [Ⓣ][1]
Gets a random element from `collection`.
@@ -3209,8 +3215,8 @@ _.sample([1, 2, 3, 4]);
-### `_.sampleSize(collection, [n=1])`
-[#](#_samplesizecollection-n1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9302 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.samplesize "See the npm package") [Ⓣ][1]
+_.sampleSize(collection, [n=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9337 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.samplesize "See the npm package") [Ⓣ][1]
Gets `n` random elements at unique keys from `collection` up to the
size of `collection`.
@@ -3238,8 +3244,8 @@ _.sampleSize([1, 2, 3], 4);
-### `_.shuffle(collection)`
-[#](#_shufflecollection) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9339 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.shuffle "See the npm package") [Ⓣ][1]
+_.shuffle(collection)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9374 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.shuffle "See the npm package") [Ⓣ][1]
Creates an array of shuffled values, using a version of the
[Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).
@@ -3263,8 +3269,8 @@ _.shuffle([1, 2, 3, 4]);
-### `_.size(collection)`
-[#](#_sizecollection) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9364 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.size "See the npm package") [Ⓣ][1]
+_.size(collection)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9399 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.size "See the npm package") [Ⓣ][1]
Gets the size of `collection` by returning its length for array-like
values or the number of own enumerable string keyed properties for objects.
@@ -3294,8 +3300,8 @@ _.size('pebbles');
-### `_.some(collection, [predicate=_.identity])`
-[#](#_somecollection-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9417 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.some "See the npm package") [Ⓣ][1]
+_.some(collection, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9452 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.some "See the npm package") [Ⓣ][1]
Checks if `predicate` returns truthy for **any** element of `collection`.
Iteration is stopped once `predicate` returns truthy. The predicate is
@@ -3338,8 +3344,8 @@ _.some(users, 'active');
-### `_.sortBy(collection, [iteratees=[_.identity]])`
-[#](#_sortbycollection-iteratees_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9459 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortby "See the npm package") [Ⓣ][1]
+_.sortBy(collection, [iteratees=[_.identity]])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9494 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sortby "See the npm package") [Ⓣ][1]
Creates an array of elements, sorted in ascending order by the results of
running each element in a collection thru each iteratee. This method
@@ -3387,8 +3393,8 @@ _.sortBy(users, 'user', function(o) {
-### `_.now()`
-[#](#_now) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9490 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.now "See the npm package") [Ⓣ][1]
+_.now()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9525 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.now "See the npm package") [Ⓣ][1]
Gets the timestamp of the number of milliseconds that have elapsed since
the Unix epoch *(1 January `1970 00`:00:00 UTC)*.
@@ -3417,8 +3423,8 @@ _.defer(function(stamp) {
-### `_.after(n, func)`
-[#](#_aftern-func) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9520 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.after "See the npm package") [Ⓣ][1]
+_.after(n, func)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9555 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.after "See the npm package") [Ⓣ][1]
The opposite of `_.before`; this method creates a function that invokes
`func` once it's called `n` or more times.
@@ -3451,8 +3457,8 @@ _.forEach(saves, function(type) {
-### `_.ary(func, [n=func.length])`
-[#](#_aryfunc-nfunclength) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9549 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ary "See the npm package") [Ⓣ][1]
+_.ary(func, [n=func.length])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9584 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ary "See the npm package") [Ⓣ][1]
Creates a function that invokes `func`, with up to `n` arguments,
ignoring any additional arguments.
@@ -3477,8 +3483,8 @@ _.map(['6', '8', '10'], _.ary(parseInt, 1));
-### `_.before(n, func)`
-[#](#_beforen-func) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9572 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.before "See the npm package") [Ⓣ][1]
+_.before(n, func)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9607 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.before "See the npm package") [Ⓣ][1]
Creates a function that invokes `func`, with the `this` binding and arguments
of the created function, while it's called less than `n` times. Subsequent
@@ -3504,8 +3510,8 @@ jQuery(element).on('click', _.before(5, addContactToList));
-### `_.bind(func, thisArg, [partials])`
-[#](#_bindfunc-thisarg-partials) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9624 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bind "See the npm package") [Ⓣ][1]
+_.bind(func, thisArg, [partials])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9659 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bind "See the npm package") [Ⓣ][1]
Creates a function that invokes `func` with the `this` binding of `thisArg`
and `partials` prepended to the arguments it receives.
@@ -3551,8 +3557,8 @@ bound('hi');
-### `_.bindKey(object, key, [partials])`
-[#](#_bindkeyobject-key-partials) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9678 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bindkey "See the npm package") [Ⓣ][1]
+_.bindKey(object, key, [partials])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9713 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bindkey "See the npm package") [Ⓣ][1]
Creates a function that invokes the method at `object[key]` with `partials`
prepended to the arguments it receives.
@@ -3608,8 +3614,8 @@ bound('hi');
-### `_.curry(func, [arity=func.length])`
-[#](#_curryfunc-arityfunclength) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9728 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.curry "See the npm package") [Ⓣ][1]
+_.curry(func, [arity=func.length])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9763 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.curry "See the npm package") [Ⓣ][1]
Creates a function that accepts arguments of `func` and either invokes
`func` returning its result, if at least `arity` number of arguments have
@@ -3660,8 +3666,8 @@ curried(1)(_, 3)(2);
-### `_.curryRight(func, [arity=func.length])`
-[#](#_curryrightfunc-arityfunclength) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9773 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.curryright "See the npm package") [Ⓣ][1]
+_.curryRight(func, [arity=func.length])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9808 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.curryright "See the npm package") [Ⓣ][1]
This method is like `_.curry` except that arguments are applied to `func`
in the manner of `_.partialRight` instead of `_.partial`.
@@ -3709,8 +3715,8 @@ curried(3)(1, _)(2);
-### `_.debounce(func, [wait=0], [options={}], [options.leading=false], [options.maxWait], [options.trailing=true])`
-[#](#_debouncefunc-wait0-options-optionsleadingfalse-optionsmaxwait-optionstrailingtrue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9834 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.debounce "See the npm package") [Ⓣ][1]
+_.debounce(func, [wait=0], [options={}], [options.leading=false], [options.maxWait], [options.trailing=true])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L9869 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.debounce "See the npm package") [Ⓣ][1]
Creates a debounced function that delays invoking `func` until after `wait`
milliseconds have elapsed since the last time the debounced function was
@@ -3773,8 +3779,8 @@ jQuery(window).on('popstate', debounced.cancel);
-### `_.defer(func, [args])`
-[#](#_deferfunc-args) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9974 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defer "See the npm package") [Ⓣ][1]
+_.defer(func, [args])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10009 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defer "See the npm package") [Ⓣ][1]
Defers invoking the `func` until the current call stack has cleared. Any
additional arguments are provided to `func` when it's invoked.
@@ -3801,8 +3807,8 @@ _.defer(function(text) {
-### `_.delay(func, wait, [args])`
-[#](#_delayfunc-wait-args) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L9997 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.delay "See the npm package") [Ⓣ][1]
+_.delay(func, wait, [args])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10032 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.delay "See the npm package") [Ⓣ][1]
Invokes `func` after `wait` milliseconds. Any additional arguments are
provided to `func` when it's invoked.
@@ -3830,8 +3836,8 @@ _.delay(function(text) {
-### `_.flip(func)`
-[#](#_flipfunc) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10019 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flip "See the npm package") [Ⓣ][1]
+_.flip(func)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10054 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flip "See the npm package") [Ⓣ][1]
Creates a function that invokes `func` with arguments reversed.
@@ -3858,8 +3864,8 @@ flipped('a', 'b', 'c', 'd');
-### `_.memoize(func, [resolver])`
-[#](#_memoizefunc-resolver) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10067 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.memoize "See the npm package") [Ⓣ][1]
+_.memoize(func, [resolver])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10102 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.memoize "See the npm package") [Ⓣ][1]
Creates a function that memoizes the result of `func`. If `resolver` is
provided, it determines the cache key for storing the result based on the
@@ -3871,7 +3877,7 @@ is invoked with the `this` binding of the memoized function.
**Note:** The cache is exposed as the `cache` property on the memoized
function. Its creation may be customized by replacing the `_.memoize.Cache`
constructor with one whose instances implement the
-[`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object)
+[`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
method interface of `delete`, `get`, `has`, and `set`.
#### Since
@@ -3913,8 +3919,8 @@ _.memoize.Cache = WeakMap;
-### `_.negate(predicate)`
-[#](#_negatepredicate) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10110 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.negate "See the npm package") [Ⓣ][1]
+_.negate(predicate)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10145 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.negate "See the npm package") [Ⓣ][1]
Creates a function that negates the result of the predicate `func`. The
`func` predicate is invoked with the `this` binding and arguments of the
@@ -3943,8 +3949,8 @@ _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));
-### `_.once(func)`
-[#](#_oncefunc) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10144 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.once "See the npm package") [Ⓣ][1]
+_.once(func)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10179 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.once "See the npm package") [Ⓣ][1]
Creates a function that is restricted to invoking `func` once. Repeat calls
to the function return the value of the first invocation. The `func` is
@@ -3971,8 +3977,8 @@ initialize();
-### `_.overArgs(func, [transforms=[_.identity]])`
-[#](#_overargsfunc-transforms_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10179 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.overargs "See the npm package") [Ⓣ][1]
+
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10214 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.overargs "See the npm package") [Ⓣ][1]
Creates a function that invokes `func` with its arguments transformed.
@@ -4011,8 +4017,8 @@ func(10, 5);
-### `_.partial(func, [partials])`
-[#](#_partialfunc-partials) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10229 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partial "See the npm package") [Ⓣ][1]
+_.partial(func, [partials])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10264 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partial "See the npm package") [Ⓣ][1]
Creates a function that invokes `func` with `partials` prepended to the
arguments it receives. This method is like `_.bind` except it does **not**
@@ -4056,8 +4062,8 @@ greetFred('hi');
-### `_.partialRight(func, [partials])`
-[#](#_partialrightfunc-partials) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10266 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partialright "See the npm package") [Ⓣ][1]
+_.partialRight(func, [partials])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10301 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.partialright "See the npm package") [Ⓣ][1]
This method is like `_.partial` except that partially applied arguments
are appended to the arguments it receives.
@@ -4100,8 +4106,8 @@ sayHelloTo('fred');
-### `_.rearg(func, indexes)`
-[#](#_reargfunc-indexes) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10293 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rearg "See the npm package") [Ⓣ][1]
+_.rearg(func, indexes)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10328 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rearg "See the npm package") [Ⓣ][1]
Creates a function that invokes `func` with arguments arranged according
to the specified `indexes` where the argument value at the first index is
@@ -4132,8 +4138,8 @@ rearged('b', 'c', 'a')
-### `_.rest(func, [start=func.length-1])`
-[#](#_restfunc-startfunclength-1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10322 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rest "See the npm package") [Ⓣ][1]
+_.rest(func, [start=func.length-1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10357 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rest "See the npm package") [Ⓣ][1]
Creates a function that invokes `func` with the `this` binding of the
created function and arguments from `start` and beyond provided as
@@ -4168,12 +4174,12 @@ say('hello', 'fred', 'barney', 'pebbles');
-### `_.spread(func, [start=0])`
-[#](#_spreadfunc-start0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10364 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.spread "See the npm package") [Ⓣ][1]
+_.spread(func, [start=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10399 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.spread "See the npm package") [Ⓣ][1]
Creates a function that invokes `func` with the `this` binding of the
create function and an array of arguments much like
-[`Function#apply`](http://www.ecma-international.org/ecma-262/6.0/#sec-function.prototype.apply).
+[`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).
**Note:** This method is based on the
@@ -4213,8 +4219,8 @@ numbers.then(_.spread(function(x, y) {
-### `_.throttle(func, [wait=0], [options={}], [options.leading=true], [options.trailing=true])`
-[#](#_throttlefunc-wait0-options-optionsleadingtrue-optionstrailingtrue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10424 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.throttle "See the npm package") [Ⓣ][1]
+_.throttle(func, [wait=0], [options={}], [options.leading=true], [options.trailing=true])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10459 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.throttle "See the npm package") [Ⓣ][1]
Creates a throttled function that only invokes `func` at most once per
every `wait` milliseconds. The throttled function comes with a `cancel`
@@ -4268,8 +4274,8 @@ jQuery(window).on('popstate', throttled.cancel);
-### `_.unary(func)`
-[#](#_unaryfunc) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10457 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unary "See the npm package") [Ⓣ][1]
+_.unary(func)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10492 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unary "See the npm package") [Ⓣ][1]
Creates a function that accepts up to one argument, ignoring any
additional arguments.
@@ -4293,8 +4299,8 @@ _.map(['6', '8', '10'], _.unary(parseInt));
-### `_.wrap(value, [wrapper=identity])`
-[#](#_wrapvalue-wrapperidentity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10483 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.wrap "See the npm package") [Ⓣ][1]
+_.wrap(value, [wrapper=identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10518 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.wrap "See the npm package") [Ⓣ][1]
Creates a function that provides `value` to `wrapper` as its first
argument. Any additional arguments provided to the function are appended
@@ -4331,8 +4337,8 @@ p('fred, barney, & pebbles');
-### `_.castArray(value)`
-[#](#_castarrayvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10523 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.castarray "See the npm package") [Ⓣ][1]
+_.castArray(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10558 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.castarray "See the npm package") [Ⓣ][1]
Casts `value` as an array if it's not one.
@@ -4374,8 +4380,8 @@ console.log(_.castArray(array) === array);
-### `_.clone(value)`
-[#](#_clonevalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10557 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clone "See the npm package") [Ⓣ][1]
+_.clone(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10592 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clone "See the npm package") [Ⓣ][1]
Creates a shallow clone of `value`.
@@ -4410,8 +4416,8 @@ console.log(shallow[0] === objects[0]);
-### `_.cloneDeep(value)`
-[#](#_clonedeepvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10614 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonedeep "See the npm package") [Ⓣ][1]
+_.cloneDeep(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10649 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonedeep "See the npm package") [Ⓣ][1]
This method is like `_.clone` except that it recursively clones `value`.
@@ -4437,8 +4443,8 @@ console.log(deep[0] === objects[0]);
-### `_.cloneDeepWith(value, [customizer])`
-[#](#_clonedeepwithvalue-customizer) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10646 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonedeepwith "See the npm package") [Ⓣ][1]
+_.cloneDeepWith(value, [customizer])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10681 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonedeepwith "See the npm package") [Ⓣ][1]
This method is like `_.cloneWith` except that it recursively clones `value`.
@@ -4474,8 +4480,8 @@ console.log(el.childNodes.length);
-### `_.cloneWith(value, [customizer])`
-[#](#_clonewithvalue-customizer) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10592 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonewith "See the npm package") [Ⓣ][1]
+_.cloneWith(value, [customizer])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10627 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clonewith "See the npm package") [Ⓣ][1]
This method is like `_.clone` except that it accepts `customizer` which
is invoked to produce the cloned value. If `customizer` returns `undefined`,
@@ -4514,8 +4520,8 @@ console.log(el.childNodes.length);
-### `_.conformsTo(object, source)`
-[#](#_conformstoobject-source) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10674 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.conformsto "See the npm package") [Ⓣ][1]
+
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10709 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.conformsto "See the npm package") [Ⓣ][1]
Checks if `object` conforms to `source` by invoking the predicate
properties of `source` with the corresponding property values of `object`.
@@ -4549,11 +4555,11 @@ _.conformsTo(object, { 'b': function(n) { return n > 2; } });
-### `_.eq(value, other)`
-[#](#_eqvalue-other) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10710 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.eq "See the npm package") [Ⓣ][1]
+_.eq(value, other)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10745 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.eq "See the npm package") [Ⓣ][1]
Performs a
-[`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+[`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
comparison between two values to determine if they are equivalent.
#### Since
@@ -4591,8 +4597,8 @@ _.eq(NaN, NaN);
-### `_.gt(value, other)`
-[#](#_gtvalue-other) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10737 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.gt "See the npm package") [Ⓣ][1]
+_.gt(value, other)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10772 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.gt "See the npm package") [Ⓣ][1]
Checks if `value` is greater than `other`.
@@ -4622,8 +4628,8 @@ _.gt(1, 3);
-### `_.gte(value, other)`
-[#](#_gtevalue-other) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10762 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.gte "See the npm package") [Ⓣ][1]
+_.gte(value, other)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10797 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.gte "See the npm package") [Ⓣ][1]
Checks if `value` is greater than or equal to `other`.
@@ -4653,8 +4659,8 @@ _.gte(1, 3);
-### `_.isArguments(value)`
-[#](#_isargumentsvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10784 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarguments "See the npm package") [Ⓣ][1]
+_.isArguments(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10819 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarguments "See the npm package") [Ⓣ][1]
Checks if `value` is likely an `arguments` object.
@@ -4680,8 +4686,8 @@ _.isArguments([1, 2, 3]);
-### `_.isArray(value)`
-[#](#_isarrayvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10813 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarray "See the npm package") [Ⓣ][1]
+_.isArray(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10848 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarray "See the npm package") [Ⓣ][1]
Checks if `value` is classified as an `Array` object.
@@ -4713,8 +4719,8 @@ _.isArray(_.noop);
-### `_.isArrayBuffer(value)`
-[#](#_isarraybuffervalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10832 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraybuffer "See the npm package") [Ⓣ][1]
+_.isArrayBuffer(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10867 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraybuffer "See the npm package") [Ⓣ][1]
Checks if `value` is classified as an `ArrayBuffer` object.
@@ -4740,8 +4746,8 @@ _.isArrayBuffer(new Array(2));
-### `_.isArrayLike(value)`
-[#](#_isarraylikevalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10859 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraylike "See the npm package") [Ⓣ][1]
+_.isArrayLike(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10894 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraylike "See the npm package") [Ⓣ][1]
Checks if `value` is array-like. A value is considered array-like if it's
not a function and has a `value.length` that's an integer greater than or
@@ -4775,8 +4781,8 @@ _.isArrayLike(_.noop);
-### `_.isArrayLikeObject(value)`
-[#](#_isarraylikeobjectvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10888 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraylikeobject "See the npm package") [Ⓣ][1]
+_.isArrayLikeObject(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10923 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isarraylikeobject "See the npm package") [Ⓣ][1]
This method is like `_.isArrayLike` except that it also checks if `value`
is an object.
@@ -4809,8 +4815,8 @@ _.isArrayLikeObject(_.noop);
-### `_.isBoolean(value)`
-[#](#_isbooleanvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10909 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isboolean "See the npm package") [Ⓣ][1]
+_.isBoolean(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10944 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isboolean "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a boolean primitive or object.
@@ -4836,8 +4842,8 @@ _.isBoolean(null);
-### `_.isBuffer(value)`
-[#](#_isbuffervalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10931 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isbuffer "See the npm package") [Ⓣ][1]
+_.isBuffer(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10966 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isbuffer "See the npm package") [Ⓣ][1]
Checks if `value` is a buffer.
@@ -4863,8 +4869,8 @@ _.isBuffer(new Uint8Array(2));
-### `_.isDate(value)`
-[#](#_isdatevalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10950 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isdate "See the npm package") [Ⓣ][1]
+_.isDate(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L10985 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isdate "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a `Date` object.
@@ -4890,8 +4896,8 @@ _.isDate('Mon April 23 2012');
-### `_.isElement(value)`
-[#](#_iselementvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L10970 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iselement "See the npm package") [Ⓣ][1]
+_.isElement(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11004 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iselement "See the npm package") [Ⓣ][1]
Checks if `value` is likely a DOM element.
@@ -4917,8 +4923,8 @@ _.isElement('');
-### `_.isEmpty(value)`
-[#](#_isemptyvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11007 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isempty "See the npm package") [Ⓣ][1]
+_.isEmpty(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11041 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isempty "See the npm package") [Ⓣ][1]
Checks if `value` is an empty object, collection, map, or set.
@@ -4962,8 +4968,8 @@ _.isEmpty({ 'a': 1 });
-### `_.isEqual(value, other)`
-[#](#_isequalvalue-other) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11056 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isequal "See the npm package") [Ⓣ][1]
+_.isEqual(value, other)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11091 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isequal "See the npm package") [Ⓣ][1]
Performs a deep comparison between two values to determine if they are
equivalent.
@@ -5001,8 +5007,8 @@ object === other;
-### `_.isEqualWith(value, other, [customizer])`
-[#](#_isequalwithvalue-other-customizer) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11093 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isequalwith "See the npm package") [Ⓣ][1]
+_.isEqualWith(value, other, [customizer])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11127 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isequalwith "See the npm package") [Ⓣ][1]
This method is like `_.isEqual` except that it accepts `customizer` which
is invoked to compare values. If `customizer` returns `undefined`, comparisons
@@ -5043,8 +5049,8 @@ _.isEqualWith(array, other, customizer);
-### `_.isError(value)`
-[#](#_iserrorvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11118 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iserror "See the npm package") [Ⓣ][1]
+_.isError(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11151 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iserror "See the npm package") [Ⓣ][1]
Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
`SyntaxError`, `TypeError`, or `URIError` object.
@@ -5071,8 +5077,8 @@ _.isError(Error);
-### `_.isFinite(value)`
-[#](#_isfinitevalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11153 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isfinite "See the npm package") [Ⓣ][1]
+_.isFinite(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11185 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isfinite "See the npm package") [Ⓣ][1]
Checks if `value` is a finite primitive number.
@@ -5108,8 +5114,8 @@ _.isFinite('3');
-### `_.isFunction(value)`
-[#](#_isfunctionvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11174 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isfunction "See the npm package") [Ⓣ][1]
+_.isFunction(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11206 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isfunction "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a `Function` object.
@@ -5135,8 +5141,8 @@ _.isFunction(/abc/);
-### `_.isInteger(value)`
-[#](#_isintegervalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11208 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isinteger "See the npm package") [Ⓣ][1]
+_.isInteger(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11240 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isinteger "See the npm package") [Ⓣ][1]
Checks if `value` is an integer.
@@ -5172,14 +5178,14 @@ _.isInteger('3');
-### `_.isLength(value)`
-[#](#_islengthvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11239 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.islength "See the npm package") [Ⓣ][1]
+_.isLength(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11270 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.islength "See the npm package") [Ⓣ][1]
Checks if `value` is a valid array-like length.
-**Note:** This function is loosely based on
-[`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+**Note:** This method is loosely based on
+[`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
#### Since
4.0.0
@@ -5209,8 +5215,8 @@ _.isLength('3');
-### `_.isMap(value)`
-[#](#_ismapvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11319 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismap "See the npm package") [Ⓣ][1]
+_.isMap(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11350 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismap "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a `Map` object.
@@ -5236,15 +5242,20 @@ _.isMap(new WeakMap);
-### `_.isMatch(object, source)`
-[#](#_ismatchobject-source) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11345 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismatch "See the npm package") [Ⓣ][1]
+_.isMatch(object, source)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11380 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismatch "See the npm package") [Ⓣ][1]
Performs a partial deep comparison between `object` and `source` to
determine if `object` contains equivalent property values.
-**Note:** This method supports comparing the same values as `_.isEqual`
-and is equivalent to `_.matches` when `source` is partially applied.
+**Note:** This method is equivalent to `_.matches` when `source` is
+partially applied.
+
+
+Partial comparisons will match empty array and empty object `source`
+values against any array or object value, respectively. See `_.isEqual`
+for a list of supported value comparisons.
#### Since
3.0.0
@@ -5271,8 +5282,8 @@ _.isMatch(object, { 'b': 1 });
-### `_.isMatchWith(object, source, [customizer])`
-[#](#_ismatchwithobject-source-customizer) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11381 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismatchwith "See the npm package") [Ⓣ][1]
+_.isMatchWith(object, source, [customizer])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11416 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ismatchwith "See the npm package") [Ⓣ][1]
This method is like `_.isMatch` except that it accepts `customizer` which
is invoked to compare values. If `customizer` returns `undefined`, comparisons
@@ -5313,8 +5324,8 @@ _.isMatchWith(object, source, customizer);
-### `_.isNaN(value)`
-[#](#_isnanvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11414 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnan "See the npm package") [Ⓣ][1]
+_.isNaN(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11449 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnan "See the npm package") [Ⓣ][1]
Checks if `value` is `NaN`.
@@ -5352,8 +5363,8 @@ _.isNaN(undefined);
-### `_.isNative(value)`
-[#](#_isnativevalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11447 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnative "See the npm package") [Ⓣ][1]
+_.isNative(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11482 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnative "See the npm package") [Ⓣ][1]
Checks if `value` is a pristine native function.
@@ -5388,8 +5399,8 @@ _.isNative(_);
-### `_.isNil(value)`
-[#](#_isnilvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11495 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnil "See the npm package") [Ⓣ][1]
+_.isNil(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11530 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnil "See the npm package") [Ⓣ][1]
Checks if `value` is `null` or `undefined`.
@@ -5418,8 +5429,8 @@ _.isNil(NaN);
-### `_.isNull(value)`
-[#](#_isnullvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11471 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnull "See the npm package") [Ⓣ][1]
+_.isNull(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11506 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnull "See the npm package") [Ⓣ][1]
Checks if `value` is `null`.
@@ -5445,8 +5456,8 @@ _.isNull(void 0);
-### `_.isNumber(value)`
-[#](#_isnumbervalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11525 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnumber "See the npm package") [Ⓣ][1]
+_.isNumber(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11560 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isnumber "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a `Number` primitive or object.
@@ -5482,11 +5493,11 @@ _.isNumber('3');
-### `_.isObject(value)`
-[#](#_isobjectvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11269 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isobject "See the npm package") [Ⓣ][1]
+_.isObject(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11300 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isobject "See the npm package") [Ⓣ][1]
Checks if `value` is the
-[language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
+[language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
of `Object`. *(e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)*
#### Since
@@ -5517,8 +5528,8 @@ _.isObject(null);
-### `_.isObjectLike(value)`
-[#](#_isobjectlikevalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11298 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isobjectlike "See the npm package") [Ⓣ][1]
+_.isObjectLike(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11329 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isobjectlike "See the npm package") [Ⓣ][1]
Checks if `value` is object-like. A value is object-like if it's not `null`
and has a `typeof` result of "object".
@@ -5551,8 +5562,8 @@ _.isObjectLike(null);
-### `_.isPlainObject(value)`
-[#](#_isplainobjectvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11559 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isplainobject "See the npm package") [Ⓣ][1]
+_.isPlainObject(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11593 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isplainobject "See the npm package") [Ⓣ][1]
Checks if `value` is a plain object, that is, an object created by the
`Object` constructor or one with a `[[Prototype]]` of `null`.
@@ -5589,8 +5600,8 @@ _.isPlainObject(Object.create(null));
-### `_.isRegExp(value)`
-[#](#_isregexpvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11590 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isregexp "See the npm package") [Ⓣ][1]
+_.isRegExp(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11624 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isregexp "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a `RegExp` object.
@@ -5616,8 +5627,8 @@ _.isRegExp('/abc/');
-### `_.isSafeInteger(value)`
-[#](#_issafeintegervalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11620 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.issafeinteger "See the npm package") [Ⓣ][1]
+_.isSafeInteger(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11653 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.issafeinteger "See the npm package") [Ⓣ][1]
Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754
double precision number which isn't the result of a rounded unsafe integer.
@@ -5654,8 +5665,8 @@ _.isSafeInteger('3');
-### `_.isSet(value)`
-[#](#_issetvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11641 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isset "See the npm package") [Ⓣ][1]
+_.isSet(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11674 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isset "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a `Set` object.
@@ -5681,8 +5692,8 @@ _.isSet(new WeakSet);
-### `_.isString(value)`
-[#](#_isstringvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11660 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isstring "See the npm package") [Ⓣ][1]
+_.isString(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11693 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isstring "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a `String` primitive or object.
@@ -5708,8 +5719,8 @@ _.isString(1);
-### `_.isSymbol(value)`
-[#](#_issymbolvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11682 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.issymbol "See the npm package") [Ⓣ][1]
+_.isSymbol(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11715 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.issymbol "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a `Symbol` primitive or object.
@@ -5735,8 +5746,8 @@ _.isSymbol('abc');
-### `_.isTypedArray(value)`
-[#](#_istypedarrayvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11704 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.istypedarray "See the npm package") [Ⓣ][1]
+_.isTypedArray(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11737 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.istypedarray "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a typed array.
@@ -5762,8 +5773,8 @@ _.isTypedArray([]);
-### `_.isUndefined(value)`
-[#](#_isundefinedvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11723 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isundefined "See the npm package") [Ⓣ][1]
+_.isUndefined(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11756 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isundefined "See the npm package") [Ⓣ][1]
Checks if `value` is `undefined`.
@@ -5789,8 +5800,8 @@ _.isUndefined(null);
-### `_.isWeakMap(value)`
-[#](#_isweakmapvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11744 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isweakmap "See the npm package") [Ⓣ][1]
+_.isWeakMap(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11777 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isweakmap "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a `WeakMap` object.
@@ -5816,8 +5827,8 @@ _.isWeakMap(new Map);
-### `_.isWeakSet(value)`
-[#](#_isweaksetvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11765 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isweakset "See the npm package") [Ⓣ][1]
+_.isWeakSet(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11798 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.isweakset "See the npm package") [Ⓣ][1]
Checks if `value` is classified as a `WeakSet` object.
@@ -5843,8 +5854,8 @@ _.isWeakSet(new Set);
-### `_.lt(value, other)`
-[#](#_ltvalue-other) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11792 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lt "See the npm package") [Ⓣ][1]
+_.lt(value, other)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11825 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lt "See the npm package") [Ⓣ][1]
Checks if `value` is less than `other`.
@@ -5874,8 +5885,8 @@ _.lt(3, 1);
-### `_.lte(value, other)`
-[#](#_ltevalue-other) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11817 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lte "See the npm package") [Ⓣ][1]
+_.lte(value, other)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11850 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lte "See the npm package") [Ⓣ][1]
Checks if `value` is less than or equal to `other`.
@@ -5905,8 +5916,8 @@ _.lte(3, 1);
-### `_.toArray(value)`
-[#](#_toarrayvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11844 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toarray "See the npm package") [Ⓣ][1]
+_.toArray(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11877 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toarray "See the npm package") [Ⓣ][1]
Converts `value` to an array.
@@ -5938,8 +5949,8 @@ _.toArray(null);
-### `_.toFinite(value)`
-[#](#_tofinitevalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11883 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tofinite "See the npm package") [Ⓣ][1]
+_.toFinite(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11916 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tofinite "See the npm package") [Ⓣ][1]
Converts `value` to a finite number.
@@ -5971,14 +5982,14 @@ _.toFinite('3.2');
-### `_.toInteger(value)`
-[#](#_tointegervalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11921 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tointeger "See the npm package") [Ⓣ][1]
+_.toInteger(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11954 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tointeger "See the npm package") [Ⓣ][1]
Converts `value` to an integer.
**Note:** This method is loosely based on
-[`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
+[`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
#### Since
4.0.0
@@ -6008,15 +6019,15 @@ _.toInteger('3.2');
-### `_.toLength(value)`
-[#](#_tolengthvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11955 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tolength "See the npm package") [Ⓣ][1]
+_.toLength(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L11988 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tolength "See the npm package") [Ⓣ][1]
Converts `value` to an integer suitable for use as the length of an
array-like object.
**Note:** This method is based on
-[`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+[`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
#### Since
4.0.0
@@ -6046,8 +6057,8 @@ _.toLength('3.2');
-### `_.toNumber(value)`
-[#](#_tonumbervalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L11982 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tonumber "See the npm package") [Ⓣ][1]
+_.toNumber(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12015 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tonumber "See the npm package") [Ⓣ][1]
Converts `value` to a number.
@@ -6079,8 +6090,8 @@ _.toNumber('3.2');
-### `_.toPlainObject(value)`
-[#](#_toplainobjectvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12027 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toplainobject "See the npm package") [Ⓣ][1]
+_.toPlainObject(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12060 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toplainobject "See the npm package") [Ⓣ][1]
Converts `value` to a plain object flattening inherited enumerable string
keyed properties of `value` to own properties of the plain object.
@@ -6113,8 +6124,8 @@ _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
-### `_.toSafeInteger(value)`
-[#](#_tosafeintegervalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12055 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tosafeinteger "See the npm package") [Ⓣ][1]
+_.toSafeInteger(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12088 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tosafeinteger "See the npm package") [Ⓣ][1]
Converts `value` to a safe integer. A safe integer can be compared and
represented correctly.
@@ -6147,8 +6158,8 @@ _.toSafeInteger('3.2');
-### `_.toString(value)`
-[#](#_tostringvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12080 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tostring "See the npm package") [Ⓣ][1]
+_.toString(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12113 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tostring "See the npm package") [Ⓣ][1]
Converts `value` to a string. An empty string is returned for `null`
and `undefined` values. The sign of `-0` is preserved.
@@ -6184,8 +6195,8 @@ _.toString([1, 2, 3]);
-### `_.add(augend, addend)`
-[#](#_addaugend-addend) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15687 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.add "See the npm package") [Ⓣ][1]
+_.add(augend, addend)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15688 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.add "See the npm package") [Ⓣ][1]
Adds two numbers.
@@ -6209,8 +6220,8 @@ _.add(6, 4);
-### `_.ceil(number, [precision=0])`
-[#](#_ceilnumber-precision0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15712 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ceil "See the npm package") [Ⓣ][1]
+_.ceil(number, [precision=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15713 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ceil "See the npm package") [Ⓣ][1]
Computes `number` rounded up to `precision`.
@@ -6240,8 +6251,8 @@ _.ceil(6040, -2);
-### `_.divide(dividend, divisor)`
-[#](#_dividedividend-divisor) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15729 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.divide "See the npm package") [Ⓣ][1]
+_.divide(dividend, divisor)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15730 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.divide "See the npm package") [Ⓣ][1]
Divide two numbers.
@@ -6265,8 +6276,8 @@ _.divide(6, 4);
-### `_.floor(number, [precision=0])`
-[#](#_floornumber-precision0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15754 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.floor "See the npm package") [Ⓣ][1]
+_.floor(number, [precision=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15755 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.floor "See the npm package") [Ⓣ][1]
Computes `number` rounded down to `precision`.
@@ -6296,8 +6307,8 @@ _.floor(4060, -2);
-### `_.max(array)`
-[#](#_maxarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15774 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.max "See the npm package") [Ⓣ][1]
+_.max(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15775 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.max "See the npm package") [Ⓣ][1]
Computes the maximum value of `array`. If `array` is empty or falsey,
`undefined` is returned.
@@ -6324,8 +6335,8 @@ _.max([]);
-### `_.maxBy(array, [iteratee=_.identity])`
-[#](#_maxbyarray-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15803 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.maxby "See the npm package") [Ⓣ][1]
+_.maxBy(array, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15804 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.maxby "See the npm package") [Ⓣ][1]
This method is like `_.max` except that it accepts `iteratee` which is
invoked for each element in `array` to generate the criterion by which
@@ -6357,8 +6368,8 @@ _.maxBy(objects, 'n');
-### `_.mean(array)`
-[#](#_meanarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15823 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mean "See the npm package") [Ⓣ][1]
+_.mean(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15824 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mean "See the npm package") [Ⓣ][1]
Computes the mean of the values in `array`.
@@ -6381,8 +6392,8 @@ _.mean([4, 2, 8, 6]);
-### `_.meanBy(array, [iteratee=_.identity])`
-[#](#_meanbyarray-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15850 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.meanby "See the npm package") [Ⓣ][1]
+_.meanBy(array, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15851 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.meanby "See the npm package") [Ⓣ][1]
This method is like `_.mean` except that it accepts `iteratee` which is
invoked for each element in `array` to generate the value to be averaged.
@@ -6414,8 +6425,8 @@ _.meanBy(objects, 'n');
-### `_.min(array)`
-[#](#_minarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15872 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.min "See the npm package") [Ⓣ][1]
+_.min(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15873 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.min "See the npm package") [Ⓣ][1]
Computes the minimum value of `array`. If `array` is empty or falsey,
`undefined` is returned.
@@ -6442,8 +6453,8 @@ _.min([]);
-### `_.minBy(array, [iteratee=_.identity])`
-[#](#_minbyarray-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15901 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.minby "See the npm package") [Ⓣ][1]
+_.minBy(array, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15902 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.minby "See the npm package") [Ⓣ][1]
This method is like `_.min` except that it accepts `iteratee` which is
invoked for each element in `array` to generate the criterion by which
@@ -6475,8 +6486,8 @@ _.minBy(objects, 'n');
-### `_.multiply(multiplier, multiplicand)`
-[#](#_multiplymultiplier-multiplicand) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15922 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.multiply "See the npm package") [Ⓣ][1]
+_.multiply(multiplier, multiplicand)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15923 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.multiply "See the npm package") [Ⓣ][1]
Multiply two numbers.
@@ -6500,8 +6511,8 @@ _.multiply(6, 4);
-### `_.round(number, [precision=0])`
-[#](#_roundnumber-precision0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15947 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.round "See the npm package") [Ⓣ][1]
+_.round(number, [precision=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15948 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.round "See the npm package") [Ⓣ][1]
Computes `number` rounded to `precision`.
@@ -6531,8 +6542,8 @@ _.round(4060, -2);
-### `_.subtract(minuend, subtrahend)`
-[#](#_subtractminuend-subtrahend) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15964 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.subtract "See the npm package") [Ⓣ][1]
+_.subtract(minuend, subtrahend)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15965 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.subtract "See the npm package") [Ⓣ][1]
Subtract two numbers.
@@ -6556,8 +6567,8 @@ _.subtract(6, 4);
-### `_.sum(array)`
-[#](#_sumarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15982 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sum "See the npm package") [Ⓣ][1]
+_.sum(array)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15983 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sum "See the npm package") [Ⓣ][1]
Computes the sum of the values in `array`.
@@ -6580,8 +6591,8 @@ _.sum([4, 2, 8, 6]);
-### `_.sumBy(array, [iteratee=_.identity])`
-[#](#_sumbyarray-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L16011 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sumby "See the npm package") [Ⓣ][1]
+_.sumBy(array, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L16012 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.sumby "See the npm package") [Ⓣ][1]
This method is like `_.sum` except that it accepts `iteratee` which is
invoked for each element in `array` to generate the value to be summed.
@@ -6619,8 +6630,8 @@ _.sumBy(objects, 'n');
-### `_.clamp(number, [lower], upper)`
-[#](#_clampnumber-lower-upper) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13483 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clamp "See the npm package") [Ⓣ][1]
+_.clamp(number, [lower], upper)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13478 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.clamp "See the npm package") [Ⓣ][1]
Clamps `number` within the inclusive `lower` and `upper` bounds.
@@ -6648,8 +6659,8 @@ _.clamp(10, -5, 5);
-### `_.inRange(number, [start=0], end)`
-[#](#_inrangenumber-start0-end) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13537 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.inrange "See the npm package") [Ⓣ][1]
+_.inRange(number, [start=0], end)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13532 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.inrange "See the npm package") [Ⓣ][1]
Checks if `n` is between `start` and up to, but not including, `end`. If
`end` is not specified, it's set to `start` with `start` then set to `0`.
@@ -6695,8 +6706,8 @@ _.inRange(-3, -2, -6);
-### `_.random([lower=0], [upper=1], [floating])`
-[#](#_randomlower0-upper1-floating) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13580 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.random "See the npm package") [Ⓣ][1]
+_.random([lower=0], [upper=1], [floating])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13575 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.random "See the npm package") [Ⓣ][1]
Produces a random number between the inclusive `lower` and `upper` bounds.
If only one argument is provided a number between `0` and the given number
@@ -6743,8 +6754,8 @@ _.random(1.2, 5.2);
-### `_.assign(object, [sources])`
-[#](#_assignobject-sources) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12118 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assign "See the npm package") [Ⓣ][1]
+_.assign(object, [sources])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12151 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assign "See the npm package") [Ⓣ][1]
Assigns own enumerable string keyed properties of source objects to the
destination object. Source objects are applied from left to right.
@@ -6785,8 +6796,8 @@ _.assign({ 'a': 0 }, new Foo, new Bar);
-### `_.assignIn(object, [sources])`
-[#](#_assigninobject-sources) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12161 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assignin "See the npm package") [Ⓣ][1]
+_.assignIn(object, [sources])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12194 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assignin "See the npm package") [Ⓣ][1]
This method is like `_.assign` except that it iterates over own and
inherited source properties.
@@ -6828,8 +6839,8 @@ _.assignIn({ 'a': 0 }, new Foo, new Bar);
-### `_.assignInWith(object, sources, [customizer])`
-[#](#_assigninwithobject-sources-customizer) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12200 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assigninwith "See the npm package") [Ⓣ][1]
+_.assignInWith(object, sources, [customizer])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12227 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assigninwith "See the npm package") [Ⓣ][1]
This method is like `_.assignIn` except that it accepts `customizer`
which is invoked to produce the assigned values. If `customizer` returns
@@ -6869,8 +6880,8 @@ defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
-### `_.assignWith(object, sources, [customizer])`
-[#](#_assignwithobject-sources-customizer) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12232 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assignwith "See the npm package") [Ⓣ][1]
+_.assignWith(object, sources, [customizer])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12259 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.assignwith "See the npm package") [Ⓣ][1]
This method is like `_.assign` except that it accepts `customizer`
which is invoked to produce the assigned values. If `customizer` returns
@@ -6907,8 +6918,8 @@ defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
-### `_.at(object, [paths])`
-[#](#_atobject-paths) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12253 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.at "See the npm package") [Ⓣ][1]
+_.at(object, [paths])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12280 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.at "See the npm package") [Ⓣ][1]
Creates an array of values corresponding to `paths` of `object`.
@@ -6934,8 +6945,8 @@ _.at(object, ['a[0].b.c', 'a[1]']);
-### `_.create(prototype, [properties])`
-[#](#_createprototype-properties) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12291 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.create "See the npm package") [Ⓣ][1]
+_.create(prototype, [properties])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12318 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.create "See the npm package") [Ⓣ][1]
Creates an object that inherits from the `prototype` object. If a
`properties` object is given, its own enumerable string keyed properties
@@ -6978,8 +6989,8 @@ circle instanceof Shape;
-### `_.defaults(object, [sources])`
-[#](#_defaultsobject-sources) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12317 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaults "See the npm package") [Ⓣ][1]
+_.defaults(object, [sources])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12344 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaults "See the npm package") [Ⓣ][1]
Assigns own and inherited enumerable string keyed properties of source
objects to the destination object for all destination properties that
@@ -7009,8 +7020,8 @@ _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
-### `_.defaultsDeep(object, [sources])`
-[#](#_defaultsdeepobject-sources) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12341 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaultsdeep "See the npm package") [Ⓣ][1]
+_.defaultsDeep(object, [sources])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12368 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaultsdeep "See the npm package") [Ⓣ][1]
This method is like `_.defaults` except that it recursively assigns
default properties.
@@ -7038,8 +7049,8 @@ _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });
-### `_.findKey(object, [predicate=_.identity])`
-[#](#_findkeyobject-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12381 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findkey "See the npm package") [Ⓣ][1]
+_.findKey(object, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12408 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findkey "See the npm package") [Ⓣ][1]
This method is like `_.find` except that it returns the key of the first
element `predicate` returns truthy for instead of the element itself.
@@ -7082,8 +7093,8 @@ _.findKey(users, 'active');
-### `_.findLastKey(object, [predicate=_.identity])`
-[#](#_findlastkeyobject-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12420 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlastkey "See the npm package") [Ⓣ][1]
+_.findLastKey(object, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12447 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.findlastkey "See the npm package") [Ⓣ][1]
This method is like `_.findKey` except that it iterates over elements of
a collection in the opposite order.
@@ -7126,8 +7137,8 @@ _.findLastKey(users, 'active');
-### `_.forIn(object, [iteratee=_.identity])`
-[#](#_forinobject-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12452 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forin "See the npm package") [Ⓣ][1]
+_.forIn(object, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12479 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forin "See the npm package") [Ⓣ][1]
Iterates over own and inherited enumerable string keyed properties of an
object and invokes `iteratee` for each property. The iteratee is invoked
@@ -7163,8 +7174,8 @@ _.forIn(new Foo, function(value, key) {
-### `_.forInRight(object, [iteratee=_.identity])`
-[#](#_forinrightobject-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12484 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forinright "See the npm package") [Ⓣ][1]
+_.forInRight(object, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12511 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forinright "See the npm package") [Ⓣ][1]
This method is like `_.forIn` except that it iterates over properties of
`object` in the opposite order.
@@ -7198,8 +7209,8 @@ _.forInRight(new Foo, function(value, key) {
-### `_.forOwn(object, [iteratee=_.identity])`
-[#](#_forownobject-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12518 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forown "See the npm package") [Ⓣ][1]
+_.forOwn(object, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12545 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forown "See the npm package") [Ⓣ][1]
Iterates over own enumerable string keyed properties of an object and
invokes `iteratee` for each property. The iteratee is invoked with three
@@ -7235,8 +7246,8 @@ _.forOwn(new Foo, function(value, key) {
-### `_.forOwnRight(object, [iteratee=_.identity])`
-[#](#_forownrightobject-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12548 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forownright "See the npm package") [Ⓣ][1]
+_.forOwnRight(object, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12575 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.forownright "See the npm package") [Ⓣ][1]
This method is like `_.forOwn` except that it iterates over properties of
`object` in the opposite order.
@@ -7270,8 +7281,8 @@ _.forOwnRight(new Foo, function(value, key) {
-### `_.functions(object)`
-[#](#_functionsobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12575 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.functions "See the npm package") [Ⓣ][1]
+_.functions(object)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12602 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.functions "See the npm package") [Ⓣ][1]
Creates an array of function property names from own enumerable properties
of `object`.
@@ -7302,8 +7313,8 @@ _.functions(new Foo);
-### `_.functionsIn(object)`
-[#](#_functionsinobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12602 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.functionsin "See the npm package") [Ⓣ][1]
+_.functionsIn(object)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12629 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.functionsin "See the npm package") [Ⓣ][1]
Creates an array of function property names from own and inherited
enumerable properties of `object`.
@@ -7334,8 +7345,8 @@ _.functionsIn(new Foo);
-### `_.get(object, path, [defaultValue])`
-[#](#_getobject-path-defaultvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12631 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.get "See the npm package") [Ⓣ][1]
+_.get(object, path, [defaultValue])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12658 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.get "See the npm package") [Ⓣ][1]
Gets the value at `path` of `object`. If the resolved value is
`undefined`, the `defaultValue` is returned in its place.
@@ -7369,8 +7380,8 @@ _.get(object, 'a.b.c', 'default');
-### `_.has(object, path)`
-[#](#_hasobject-path) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12663 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.has "See the npm package") [Ⓣ][1]
+_.has(object, path)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12690 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.has "See the npm package") [Ⓣ][1]
Checks if `path` is a direct property of `object`.
@@ -7406,8 +7417,8 @@ _.has(other, 'a');
-### `_.hasIn(object, path)`
-[#](#_hasinobject-path) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12693 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.hasin "See the npm package") [Ⓣ][1]
+_.hasIn(object, path)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12720 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.hasin "See the npm package") [Ⓣ][1]
Checks if `path` is a direct or inherited property of `object`.
@@ -7442,8 +7453,8 @@ _.hasIn(object, 'b');
-### `_.invert(object)`
-[#](#_invertobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12715 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invert "See the npm package") [Ⓣ][1]
+_.invert(object)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12742 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invert "See the npm package") [Ⓣ][1]
Creates an object composed of the inverted keys and values of `object`.
If `object` contains duplicate values, subsequent values overwrite
@@ -7470,8 +7481,8 @@ _.invert(object);
-### `_.invertBy(object, [iteratee=_.identity])`
-[#](#_invertbyobject-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12745 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invertby "See the npm package") [Ⓣ][1]
+_.invertBy(object, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12772 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invertby "See the npm package") [Ⓣ][1]
This method is like `_.invert` except that the inverted object is generated
from the results of running each element of `object` thru `iteratee`. The
@@ -7506,8 +7517,8 @@ _.invertBy(object, function(value) {
-### `_.invoke(object, path, [args])`
-[#](#_invokeobject-path-args) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12771 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invoke "See the npm package") [Ⓣ][1]
+_.invoke(object, path, [args])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12798 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.invoke "See the npm package") [Ⓣ][1]
Invokes the method at `path` of `object`.
@@ -7534,14 +7545,14 @@ _.invoke(object, 'a[0].b.c.slice', 1, 3);
-### `_.keys(object)`
-[#](#_keysobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12801 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keys "See the npm package") [Ⓣ][1]
+_.keys(object)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12828 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keys "See the npm package") [Ⓣ][1]
Creates an array of the own enumerable property names of `object`.
**Note:** Non-object values are coerced to objects. See the
-[ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
+[ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
for more details.
#### Since
@@ -7573,8 +7584,8 @@ _.keys('hi');
-### `_.keysIn(object)`
-[#](#_keysinobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12844 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keysin "See the npm package") [Ⓣ][1]
+_.keysIn(object)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12855 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.keysin "See the npm package") [Ⓣ][1]
Creates an array of the own and inherited enumerable property names of `object`.
@@ -7607,8 +7618,8 @@ _.keysIn(new Foo);
-### `_.mapKeys(object, [iteratee=_.identity])`
-[#](#_mapkeysobject-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12885 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mapkeys "See the npm package") [Ⓣ][1]
+_.mapKeys(object, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12880 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mapkeys "See the npm package") [Ⓣ][1]
The opposite of `_.mapValues`; this method creates an object with the
same values as `object` and keys generated by running each own enumerable
@@ -7637,8 +7648,8 @@ _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {
-### `_.mapValues(object, [iteratee=_.identity])`
-[#](#_mapvaluesobject-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12923 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mapvalues "See the npm package") [Ⓣ][1]
+_.mapValues(object, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12918 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mapvalues "See the npm package") [Ⓣ][1]
Creates an object with the same keys as `object` and values generated
by running each own enumerable string keyed property of `object` thru
@@ -7674,8 +7685,8 @@ _.mapValues(users, 'age');
-### `_.merge(object, [sources])`
-[#](#_mergeobject-sources) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12964 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.merge "See the npm package") [Ⓣ][1]
+_.merge(object, [sources])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12959 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.merge "See the npm package") [Ⓣ][1]
This method is like `_.assign` except that it recursively merges own and
inherited enumerable string keyed properties of source objects into the
@@ -7716,8 +7727,8 @@ _.merge(object, other);
-### `_.mergeWith(object, sources, customizer)`
-[#](#_mergewithobject-sources-customizer) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L12999 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mergewith "See the npm package") [Ⓣ][1]
+_.mergeWith(object, sources, customizer)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L12994 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mergewith "See the npm package") [Ⓣ][1]
This method is like `_.merge` except that it accepts `customizer` which
is invoked to produce the merged values of the destination and source
@@ -7758,8 +7769,8 @@ _.mergeWith(object, other, customizer);
-### `_.omit(object, [props])`
-[#](#_omitobject-props) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13022 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.omit "See the npm package") [Ⓣ][1]
+_.omit(object, [props])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13017 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.omit "See the npm package") [Ⓣ][1]
The opposite of `_.pick`; this method creates an object composed of the
own and inherited enumerable string keyed properties of `object` that are
@@ -7787,8 +7798,8 @@ _.omit(object, ['a', 'c']);
-### `_.omitBy(object, [predicate=_.identity])`
-[#](#_omitbyobject-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13050 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.omitby "See the npm package") [Ⓣ][1]
+_.omitBy(object, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13045 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.omitby "See the npm package") [Ⓣ][1]
The opposite of `_.pickBy`; this method creates an object composed of
the own and inherited enumerable string keyed properties of `object` that
@@ -7817,8 +7828,8 @@ _.omitBy(object, _.isNumber);
-### `_.pick(object, [props])`
-[#](#_pickobject-props) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13071 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pick "See the npm package") [Ⓣ][1]
+_.pick(object, [props])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13066 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pick "See the npm package") [Ⓣ][1]
Creates an object composed of the picked `object` properties.
@@ -7844,8 +7855,8 @@ _.pick(object, ['a', 'c']);
-### `_.pickBy(object, [predicate=_.identity])`
-[#](#_pickbyobject-predicate_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13093 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pickby "See the npm package") [Ⓣ][1]
+_.pickBy(object, [predicate=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13088 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pickby "See the npm package") [Ⓣ][1]
Creates an object composed of the `object` properties `predicate` returns
truthy for. The predicate is invoked with two arguments: *(value, key)*.
@@ -7872,8 +7883,8 @@ _.pickBy(object, _.isNumber);
-### `_.result(object, path, [defaultValue])`
-[#](#_resultobject-path-defaultvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13126 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.result "See the npm package") [Ⓣ][1]
+_.result(object, path, [defaultValue])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13121 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.result "See the npm package") [Ⓣ][1]
This method is like `_.get` except that if the resolved value is a
function it's invoked with the `this` binding of its parent object and
@@ -7911,8 +7922,8 @@ _.result(object, 'a[0].b.c3', _.constant('default'));
-### `_.set(object, path, value)`
-[#](#_setobject-path-value) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13176 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.set "See the npm package") [Ⓣ][1]
+_.set(object, path, value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13171 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.set "See the npm package") [Ⓣ][1]
Sets the value at `path` of `object`. If a portion of `path` doesn't exist,
it's created. Arrays are created for missing index properties while objects
@@ -7950,8 +7961,8 @@ console.log(object.x[0].y.z);
-### `_.setWith(object, path, value, [customizer])`
-[#](#_setwithobject-path-value-customizer) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13204 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.setwith "See the npm package") [Ⓣ][1]
+_.setWith(object, path, value, [customizer])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13199 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.setwith "See the npm package") [Ⓣ][1]
This method is like `_.set` except that it accepts `customizer` which is
invoked to produce the objects of `path`. If `customizer` returns `undefined`
@@ -7985,8 +7996,8 @@ _.setWith(object, '[0][1]', 'a', Object);
-### `_.toPairs(object)`
-[#](#_topairsobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13233 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topairs "See the npm package") [Ⓣ][1]
+_.toPairs(object)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13228 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topairs "See the npm package") [Ⓣ][1]
Creates an array of own enumerable string keyed-value pairs for `object`
which can be consumed by `_.fromPairs`. If `object` is a map or set, its
@@ -8021,8 +8032,8 @@ _.toPairs(new Foo);
-### `_.toPairsIn(object)`
-[#](#_topairsinobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13259 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topairsin "See the npm package") [Ⓣ][1]
+_.toPairsIn(object)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13254 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topairsin "See the npm package") [Ⓣ][1]
Creates an array of own and inherited enumerable string keyed-value pairs
for `object` which can be consumed by `_.fromPairs`. If `object` is a map
@@ -8057,8 +8068,8 @@ _.toPairsIn(new Foo);
-### `_.transform(object, [iteratee=_.identity], [accumulator])`
-[#](#_transformobject-iteratee_identity-accumulator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13291 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.transform "See the npm package") [Ⓣ][1]
+
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13286 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.transform "See the npm package") [Ⓣ][1]
An alternative to `_.reduce`; this method transforms `object` to a new
`accumulator` object which is the result of running each of its own
@@ -8097,8 +8108,8 @@ _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
-### `_.unset(object, path)`
-[#](#_unsetobject-path) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13340 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unset "See the npm package") [Ⓣ][1]
+_.unset(object, path)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13335 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unset "See the npm package") [Ⓣ][1]
Removes the property at `path` of `object`.
@@ -8135,8 +8146,8 @@ console.log(object);
-### `_.update(object, path, updater)`
-[#](#_updateobject-path-updater) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13371 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.update "See the npm package") [Ⓣ][1]
+_.update(object, path, updater)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13366 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.update "See the npm package") [Ⓣ][1]
This method is like `_.set` except that accepts `updater` to produce the
value to set. Use `_.updateWith` to customize `path` creation. The `updater`
@@ -8173,8 +8184,8 @@ console.log(object.x[0].y.z);
-### `_.updateWith(object, path, updater, [customizer])`
-[#](#_updatewithobject-path-updater-customizer) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13399 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.updatewith "See the npm package") [Ⓣ][1]
+_.updateWith(object, path, updater, [customizer])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13394 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.updatewith "See the npm package") [Ⓣ][1]
This method is like `_.update` except that it accepts `customizer` which is
invoked to produce the objects of `path`. If `customizer` returns `undefined`
@@ -8208,8 +8219,8 @@ _.updateWith(object, '[0][1]', _.constant('a'), Object);
-### `_.values(object)`
-[#](#_valuesobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13430 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.values "See the npm package") [Ⓣ][1]
+_.values(object)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13425 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.values "See the npm package") [Ⓣ][1]
Creates an array of the own enumerable string keyed property values of `object`.
@@ -8245,8 +8256,8 @@ _.values('hi');
-### `_.valuesIn(object)`
-[#](#_valuesinobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13458 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.valuesin "See the npm package") [Ⓣ][1]
+_.valuesIn(object)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13453 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.valuesin "See the npm package") [Ⓣ][1]
Creates an array of the own and inherited enumerable string keyed property
values of `object`.
@@ -8286,8 +8297,8 @@ _.valuesIn(new Foo);
-### `_(value)`
-[#](#_value) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L1522 "View in source") [Ⓣ][1]
+_(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L1520 "View in source") [Ⓣ][1]
Creates a `lodash` object which wraps `value` to enable implicit method
chain sequences. Methods that operate on and return arrays, collections,
@@ -8422,8 +8433,8 @@ _.isArray(squares.value());
-### `_.chain(value)`
-[#](#_chainvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8242 "View in source") [Ⓣ][1]
+_.chain(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8272 "View in source") [Ⓣ][1]
Creates a `lodash` wrapper instance that wraps `value` with explicit method
chain sequences enabled. The result of such sequences must be unwrapped
@@ -8461,8 +8472,8 @@ var youngest = _
-### `_.tap(value, interceptor)`
-[#](#_tapvalue-interceptor) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8271 "View in source") [Ⓣ][1]
+_.tap(value, interceptor)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8301 "View in source") [Ⓣ][1]
This method invokes `interceptor` and returns `value`. The interceptor
is invoked with one argument; *(value)*. The purpose of this method is to
@@ -8494,8 +8505,8 @@ _([1, 2, 3])
-### `_.thru(value, interceptor)`
-[#](#_thruvalue-interceptor) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8299 "View in source") [Ⓣ][1]
+_.thru(value, interceptor)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8329 "View in source") [Ⓣ][1]
This method is like `_.tap` except that it returns the result of `interceptor`.
The purpose of this method is to "pass thru" values replacing intermediate
@@ -8527,8 +8538,8 @@ _(' abc ')
-### `_.prototype[Symbol.iterator]()`
-[#](#_prototypesymboliterator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8455 "View in source") [Ⓣ][1]
+_.prototype[Symbol.iterator]()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8485 "View in source") [Ⓣ][1]
Enables the wrapper to be iterable.
@@ -8553,8 +8564,8 @@ Array.from(wrapped);
-### `_.prototype.at([paths])`
-[#](#_prototypeatpaths) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8319 "View in source") [Ⓣ][1]
+_.prototype.at([paths])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8349 "View in source") [Ⓣ][1]
This method is the wrapper version of `_.at`.
@@ -8579,8 +8590,8 @@ _(object).at(['a[0].b.c', 'a[1]']).value();
-### `_.prototype.chain()`
-[#](#_prototypechain) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8371 "View in source") [Ⓣ][1]
+_.prototype.chain()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8401 "View in source") [Ⓣ][1]
Creates a `lodash` wrapper instance with explicit method chain sequences enabled.
@@ -8614,8 +8625,8 @@ _(users)
-### `_.prototype.commit()`
-[#](#_prototypecommit) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8401 "View in source") [Ⓣ][1]
+_.prototype.commit()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8431 "View in source") [Ⓣ][1]
Executes the chain sequence and returns the wrapped result.
@@ -8648,8 +8659,8 @@ console.log(array);
-### `_.prototype.next()`
-[#](#_prototypenext) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8427 "View in source") [Ⓣ][1]
+_.prototype.next()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8457 "View in source") [Ⓣ][1]
Gets the next value on a wrapped object following the
[iterator protocol](https://mdn.io/iteration_protocols#iterator).
@@ -8678,8 +8689,8 @@ wrapped.next();
-### `_.prototype.plant(value)`
-[#](#_prototypeplantvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8483 "View in source") [Ⓣ][1]
+_.prototype.plant(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8513 "View in source") [Ⓣ][1]
Creates a clone of the chain sequence planting `value` as the wrapped value.
@@ -8712,8 +8723,8 @@ wrapped.value();
-### `_.prototype.reverse()`
-[#](#_prototypereverse) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8523 "View in source") [Ⓣ][1]
+_.prototype.reverse()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8553 "View in source") [Ⓣ][1]
This method is the wrapper version of `_.reverse`.
@@ -8741,8 +8752,8 @@ console.log(array);
-### `_.prototype.value()`
-[#](#_prototypevalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L8555 "View in source") [Ⓣ][1]
+_.prototype.value()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L8585 "View in source") [Ⓣ][1]
Executes the chain sequence to resolve the unwrapped value.
@@ -8771,8 +8782,8 @@ _([1, 2, 3]).value();
-### `_.camelCase([string=''])`
-[#](#_camelcasestring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13641 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.camelcase "See the npm package") [Ⓣ][1]
+_.camelCase([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13636 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.camelcase "See the npm package") [Ⓣ][1]
Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).
@@ -8801,8 +8812,8 @@ _.camelCase('__FOO_BAR__');
-### `_.capitalize([string=''])`
-[#](#_capitalizestring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13661 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.capitalize "See the npm package") [Ⓣ][1]
+_.capitalize([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13656 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.capitalize "See the npm package") [Ⓣ][1]
Converts the first character of `string` to upper case and the remaining
to lower case.
@@ -8826,8 +8837,8 @@ _.capitalize('FRED');
-### `_.deburr([string=''])`
-[#](#_deburrstring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13682 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.deburr "See the npm package") [Ⓣ][1]
+_.deburr([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13677 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.deburr "See the npm package") [Ⓣ][1]
Deburrs `string` by converting
[latin-1 supplementary letters](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
@@ -8853,8 +8864,8 @@ _.deburr('déjà vu');
-### `_.endsWith([string=''], [target], [position=string.length])`
-[#](#_endswithstring-target-positionstringlength) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13710 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.endswith "See the npm package") [Ⓣ][1]
+_.endsWith([string=''], [target], [position=string.length])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13705 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.endswith "See the npm package") [Ⓣ][1]
Checks if `string` ends with the given target string.
@@ -8885,8 +8896,8 @@ _.endsWith('abc', 'b', 2);
-### `_.escape([string=''])`
-[#](#_escapestring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13758 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.escape "See the npm package") [Ⓣ][1]
+_.escape([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13753 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.escape "See the npm package") [Ⓣ][1]
Converts the characters "&", "<", ">", '"', "'", and "\`" in `string` to
their corresponding HTML entities.
@@ -8933,8 +8944,8 @@ _.escape('fred, barney, & pebbles');
-### `_.escapeRegExp([string=''])`
-[#](#_escaperegexpstring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13780 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.escaperegexp "See the npm package") [Ⓣ][1]
+_.escapeRegExp([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13775 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.escaperegexp "See the npm package") [Ⓣ][1]
Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+",
"?", "(", ")", "[", "]", "{", "}", and "|" in `string`.
@@ -8958,8 +8969,8 @@ _.escapeRegExp('[lodash](https://lodash.com/)');
-### `_.kebabCase([string=''])`
-[#](#_kebabcasestring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13808 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.kebabcase "See the npm package") [Ⓣ][1]
+_.kebabCase([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13803 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.kebabcase "See the npm package") [Ⓣ][1]
Converts `string` to
[kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).
@@ -8989,8 +9000,8 @@ _.kebabCase('__FOO_BAR__');
-### `_.lowerCase([string=''])`
-[#](#_lowercasestring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13832 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lowercase "See the npm package") [Ⓣ][1]
+_.lowerCase([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13827 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lowercase "See the npm package") [Ⓣ][1]
Converts `string`, as space separated words, to lower case.
@@ -9019,8 +9030,8 @@ _.lowerCase('__FOO_BAR__');
-### `_.lowerFirst([string=''])`
-[#](#_lowerfirststring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13853 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lowerfirst "See the npm package") [Ⓣ][1]
+_.lowerFirst([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13848 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.lowerfirst "See the npm package") [Ⓣ][1]
Converts the first character of `string` to lower case.
@@ -9046,8 +9057,8 @@ _.lowerFirst('FRED');
-### `_.pad([string=''], [length=0], [chars=' '])`
-[#](#_padstring-length0-chars) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13878 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pad "See the npm package") [Ⓣ][1]
+_.pad([string=''], [length=0], [chars=' '])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13873 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.pad "See the npm package") [Ⓣ][1]
Pads `string` on the left and right sides if it's shorter than `length`.
Padding characters are truncated if they can't be evenly divided by `length`.
@@ -9079,8 +9090,8 @@ _.pad('abc', 3);
-### `_.padEnd([string=''], [length=0], [chars=' '])`
-[#](#_padendstring-length0-chars) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13917 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.padend "See the npm package") [Ⓣ][1]
+_.padEnd([string=''], [length=0], [chars=' '])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13912 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.padend "See the npm package") [Ⓣ][1]
Pads `string` on the right side if it's shorter than `length`. Padding
characters are truncated if they exceed `length`.
@@ -9112,8 +9123,8 @@ _.padEnd('abc', 3);
-### `_.padStart([string=''], [length=0], [chars=' '])`
-[#](#_padstartstring-length0-chars) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13950 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.padstart "See the npm package") [Ⓣ][1]
+_.padStart([string=''], [length=0], [chars=' '])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13945 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.padstart "See the npm package") [Ⓣ][1]
Pads `string` on the left side if it's shorter than `length`. Padding
characters are truncated if they exceed `length`.
@@ -9145,8 +9156,8 @@ _.padStart('abc', 3);
-### `_.parseInt(string, [radix=10])`
-[#](#_parseintstring-radix10) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L13984 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.parseint "See the npm package") [Ⓣ][1]
+_.parseInt(string, [radix=10])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L13979 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.parseint "See the npm package") [Ⓣ][1]
Converts `string` to an integer of the specified radix. If `radix` is
`undefined` or `0`, a `radix` of `10` is used unless `value` is a
@@ -9179,8 +9190,8 @@ _.map(['6', '08', '10'], _.parseInt);
-### `_.repeat([string=''], [n=1])`
-[#](#_repeatstring-n1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14018 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.repeat "See the npm package") [Ⓣ][1]
+_.repeat([string=''], [n=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14013 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.repeat "See the npm package") [Ⓣ][1]
Repeats the given string `n` times.
@@ -9210,8 +9221,8 @@ _.repeat('abc', 0);
-### `_.replace([string=''], pattern, replacement)`
-[#](#_replacestring-pattern-replacement) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14046 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.replace "See the npm package") [Ⓣ][1]
+_.replace([string=''], pattern, replacement)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14041 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.replace "See the npm package") [Ⓣ][1]
Replaces matches for `pattern` in `string` with `replacement`.
@@ -9240,8 +9251,8 @@ _.replace('Hi Fred', 'Fred', 'Barney');
-### `_.snakeCase([string=''])`
-[#](#_snakecasestring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14074 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.snakecase "See the npm package") [Ⓣ][1]
+_.snakeCase([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14069 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.snakecase "See the npm package") [Ⓣ][1]
Converts `string` to
[snake case](https://en.wikipedia.org/wiki/Snake_case).
@@ -9271,8 +9282,8 @@ _.snakeCase('--FOO-BAR--');
-### `_.split([string=''], separator, [limit])`
-[#](#_splitstring-separator-limit) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14097 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.split "See the npm package") [Ⓣ][1]
+_.split([string=''], separator, [limit])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14092 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.split "See the npm package") [Ⓣ][1]
Splits `string` by `separator`.
@@ -9301,8 +9312,8 @@ _.split('a-b-c', '-', 2);
-### `_.startCase([string=''])`
-[#](#_startcasestring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14139 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.startcase "See the npm package") [Ⓣ][1]
+_.startCase([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14134 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.startcase "See the npm package") [Ⓣ][1]
Converts `string` to
[start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).
@@ -9332,8 +9343,8 @@ _.startCase('__FOO_BAR__');
-### `_.startsWith([string=''], [target], [position=0])`
-[#](#_startswithstring-target-position0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14166 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.startswith "See the npm package") [Ⓣ][1]
+_.startsWith([string=''], [target], [position=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14161 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.startswith "See the npm package") [Ⓣ][1]
Checks if `string` starts with the given target string.
@@ -9364,8 +9375,8 @@ _.startsWith('abc', 'b', 1);
-### `_.template([string=''], [options={}], [options.escape=_.templateSettings.escape], [options.evaluate=_.templateSettings.evaluate], [options.imports=_.templateSettings.imports], [options.interpolate=_.templateSettings.interpolate], [options.sourceURL='lodash.templateSources[n]'], [options.variable='obj'])`
-[#](#_templatestring-options-optionsescape_templatesettingsescape-optionsevaluate_templatesettingsevaluate-optionsimports_templatesettingsimports-optionsinterpolate_templatesettingsinterpolate-optionssourceurllodashtemplatesourcesn-optionsvariableobj) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14276 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.template "See the npm package") [Ⓣ][1]
+_.template([string=''], [options={}], [options.escape=_.templateSettings.escape], [options.evaluate=_.templateSettings.evaluate], [options.imports=_.templateSettings.imports], [options.interpolate=_.templateSettings.interpolate], [options.sourceURL='lodash.templateSources[n]'], [options.variable='obj'])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14271 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.template "See the npm package") [Ⓣ][1]
Creates a compiled template function that can interpolate data properties
in "interpolate" delimiters, HTML-escape interpolated data properties in
@@ -9473,8 +9484,8 @@ fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\
-### `_.toLower([string=''])`
-[#](#_tolowerstring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14405 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tolower "See the npm package") [Ⓣ][1]
+_.toLower([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14400 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.tolower "See the npm package") [Ⓣ][1]
Converts `string`, as a whole, to lower case just like
[String#toLowerCase](https://mdn.io/toLowerCase).
@@ -9504,8 +9515,8 @@ _.toLower('__FOO_BAR__');
-### `_.toUpper([string=''])`
-[#](#_toupperstring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14430 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toupper "See the npm package") [Ⓣ][1]
+_.toUpper([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14425 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.toupper "See the npm package") [Ⓣ][1]
Converts `string`, as a whole, to upper case just like
[String#toUpperCase](https://mdn.io/toUpperCase).
@@ -9535,8 +9546,8 @@ _.toUpper('__foo_bar__');
-### `_.trim([string=''], [chars=whitespace])`
-[#](#_trimstring-charswhitespace) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14456 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trim "See the npm package") [Ⓣ][1]
+_.trim([string=''], [chars=whitespace])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14451 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trim "See the npm package") [Ⓣ][1]
Removes leading and trailing whitespace or specified characters from `string`.
@@ -9566,8 +9577,8 @@ _.map([' foo ', ' bar '], _.trim);
-### `_.trimEnd([string=''], [chars=whitespace])`
-[#](#_trimendstring-charswhitespace) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14491 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trimend "See the npm package") [Ⓣ][1]
+_.trimEnd([string=''], [chars=whitespace])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14486 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trimend "See the npm package") [Ⓣ][1]
Removes trailing whitespace or specified characters from `string`.
@@ -9594,8 +9605,8 @@ _.trimEnd('-_-abc-_-', '_-');
-### `_.trimStart([string=''], [chars=whitespace])`
-[#](#_trimstartstring-charswhitespace) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14524 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trimstart "See the npm package") [Ⓣ][1]
+_.trimStart([string=''], [chars=whitespace])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14519 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.trimstart "See the npm package") [Ⓣ][1]
Removes leading whitespace or specified characters from `string`.
@@ -9622,8 +9633,8 @@ _.trimStart('-_-abc-_-', '_-');
-### `_.truncate([string=''], [options={}], [options.length=30], [options.omission='...'], [options.separator])`
-[#](#_truncatestring-options-optionslength30-optionsomission-optionsseparator) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14575 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.truncate "See the npm package") [Ⓣ][1]
+_.truncate([string=''], [options={}], [options.length=30], [options.omission='...'], [options.separator])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14570 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.truncate "See the npm package") [Ⓣ][1]
Truncates `string` if it's longer than the given maximum string length.
The last characters of the truncated string are replaced with the omission
@@ -9669,8 +9680,8 @@ _.truncate('hi-diddly-ho there, neighborino', {
-### `_.unescape([string=''])`
-[#](#_unescapestring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14650 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unescape "See the npm package") [Ⓣ][1]
+_.unescape([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14645 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.unescape "See the npm package") [Ⓣ][1]
The inverse of `_.escape`; this method converts the HTML entities
`&`, `<`, `>`, `"`, `'`, and ``` in `string` to
@@ -9699,8 +9710,8 @@ _.unescape('fred, barney, & pebbles');
-### `_.upperCase([string=''])`
-[#](#_uppercasestring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14677 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uppercase "See the npm package") [Ⓣ][1]
+_.upperCase([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14672 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uppercase "See the npm package") [Ⓣ][1]
Converts `string`, as space separated words, to upper case.
@@ -9729,8 +9740,8 @@ _.upperCase('__foo_bar__');
-### `_.upperFirst([string=''])`
-[#](#_upperfirststring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14698 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.upperfirst "See the npm package") [Ⓣ][1]
+_.upperFirst([string=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14693 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.upperfirst "See the npm package") [Ⓣ][1]
Converts the first character of `string` to upper case.
@@ -9756,8 +9767,8 @@ _.upperFirst('FRED');
-### `_.words([string=''], [pattern])`
-[#](#_wordsstring-pattern) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14719 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.words "See the npm package") [Ⓣ][1]
+_.words([string=''], [pattern])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14714 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.words "See the npm package") [Ⓣ][1]
Splits `string` into an array of its words.
@@ -9790,8 +9801,8 @@ _.words('fred, barney, & pebbles', /[^, ]+/g);
-### `_.attempt(func, [args])`
-[#](#_attemptfunc-args) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14753 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.attempt "See the npm package") [Ⓣ][1]
+_.attempt(func, [args])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14748 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.attempt "See the npm package") [Ⓣ][1]
Attempts to invoke `func`, returning either the result or the caught error
object. Any additional arguments are provided to `func` when it's invoked.
@@ -9822,8 +9833,8 @@ if (_.isError(elements)) {
-### `_.bindAll(object, methodNames)`
-[#](#_bindallobject-methodnames) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14787 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bindall "See the npm package") [Ⓣ][1]
+_.bindAll(object, methodNames)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14782 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.bindall "See the npm package") [Ⓣ][1]
Binds methods of an object to the object itself, overwriting the existing
method.
@@ -9859,8 +9870,8 @@ jQuery(element).on('click', view.click);
-### `_.cond(pairs)`
-[#](#_condpairs) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14824 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.cond "See the npm package") [Ⓣ][1]
+_.cond(pairs)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14819 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.cond "See the npm package") [Ⓣ][1]
Creates a function that iterates over `pairs` and invokes the corresponding
function of the first predicate to return truthy. The predicate-function
@@ -9898,8 +9909,8 @@ func({ 'a': '1', 'b': '2' });
-### `_.conforms(source)`
-[#](#_conformssource) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14870 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.conforms "See the npm package") [Ⓣ][1]
+
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14865 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.conforms "See the npm package") [Ⓣ][1]
Creates a function that invokes the predicate properties of `source` with
the corresponding property values of a given object, returning `true` if
@@ -9933,8 +9944,8 @@ _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));
-### `_.constant(value)`
-[#](#_constantvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14893 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.constant "See the npm package") [Ⓣ][1]
+_.constant(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14888 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.constant "See the npm package") [Ⓣ][1]
Creates a function that returns `value`.
@@ -9962,8 +9973,8 @@ console.log(objects[0] === objects[1]);
-### `_.defaultTo(value, defaultValue)`
-[#](#_defaulttovalue-defaultvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14919 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaultto "See the npm package") [Ⓣ][1]
+_.defaultTo(value, defaultValue)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14914 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.defaultto "See the npm package") [Ⓣ][1]
Checks `value` to determine whether a default value should be returned in
its place. The `defaultValue` is returned if `value` is `NaN`, `null`,
@@ -9992,8 +10003,8 @@ _.defaultTo(undefined, 10);
-### `_.flow([funcs])`
-[#](#_flowfuncs) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14945 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flow "See the npm package") [Ⓣ][1]
+_.flow([funcs])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14940 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flow "See the npm package") [Ⓣ][1]
Creates a function that returns the result of invoking the given functions
with the `this` binding of the created function, where each successive
@@ -10023,8 +10034,8 @@ addSquare(1, 2);
-### `_.flowRight([funcs])`
-[#](#_flowrightfuncs) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14968 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flowright "See the npm package") [Ⓣ][1]
+_.flowRight([funcs])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14963 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.flowright "See the npm package") [Ⓣ][1]
This method is like `_.flow` except that it creates a function that
invokes the given functions from right to left.
@@ -10053,8 +10064,8 @@ addSquare(1, 2);
-### `_.identity(value)`
-[#](#_identityvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L14986 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.identity "See the npm package") [Ⓣ][1]
+_.identity(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L14981 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.identity "See the npm package") [Ⓣ][1]
This method returns the first argument it receives.
@@ -10079,8 +10090,8 @@ console.log(_.identity(object) === object);
-### `_.iteratee([func=_.identity])`
-[#](#_iterateefunc_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15032 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iteratee "See the npm package") [Ⓣ][1]
+_.iteratee([func=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15027 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.iteratee "See the npm package") [Ⓣ][1]
Creates a function that invokes `func` with the arguments of the created
function. If `func` is a property name, the created function returns the
@@ -10131,16 +10142,21 @@ _.filter(['abc', 'def'], /ef/);
-### `_.matches(source)`
-[#](#_matchessource) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15060 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.matches "See the npm package") [Ⓣ][1]
+_.matches(source)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15059 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.matches "See the npm package") [Ⓣ][1]
Creates a function that performs a partial deep comparison between a given
object and `source`, returning `true` if the given object has equivalent
property values, else `false`.
-**Note:** The created function supports comparing the same values as
-`_.isEqual` is equivalent to `_.isMatch` with `source` partially applied.
+**Note:** The created function is equivalent to `_.isMatch` with `source`
+partially applied.
+
+
+Partial comparisons will match empty array and empty object `source`
+values against any array or object value, respectively. See `_.isEqual`
+for a list of supported value comparisons.
#### Since
3.0.0
@@ -10166,15 +10182,17 @@ _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));
-### `_.matchesProperty(path, srcValue)`
-[#](#_matchespropertypath-srcvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15088 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.matchesproperty "See the npm package") [Ⓣ][1]
+_.matchesProperty(path, srcValue)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15089 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.matchesproperty "See the npm package") [Ⓣ][1]
Creates a function that performs a partial deep comparison between the
value at `path` of a given object to `srcValue`, returning `true` if the
object value is equivalent, else `false`.
-**Note:** This method supports comparing the same values as `_.isEqual`.
+**Note:** Partial comparisons will match empty array and empty object
+`srcValue` values against any array or object value, respectively. See
+`_.isEqual` for a list of supported value comparisons.
#### Since
3.2.0
@@ -10201,8 +10219,8 @@ _.find(objects, _.matchesProperty('a', 4));
-### `_.method(path, [args])`
-[#](#_methodpath-args) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15116 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.method "See the npm package") [Ⓣ][1]
+_.method(path, [args])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15117 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.method "See the npm package") [Ⓣ][1]
Creates a function that invokes the method at `path` of a given object.
Any additional arguments are provided to the invoked method.
@@ -10235,8 +10253,8 @@ _.map(objects, _.method(['a', 'b']));
-### `_.methodOf(object, [args])`
-[#](#_methodofobject-args) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15145 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.methodof "See the npm package") [Ⓣ][1]
+_.methodOf(object, [args])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15146 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.methodof "See the npm package") [Ⓣ][1]
The opposite of `_.method`; this method creates a function that invokes
the method at a given path of `object`. Any additional arguments are
@@ -10268,8 +10286,8 @@ _.map([['a', '2'], ['c', '0']], _.methodOf(object));
-### `_.mixin([object=lodash], source, [options={}], [options.chain=true])`
-[#](#_mixinobjectlodash-source-options-optionschaintrue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15187 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mixin "See the npm package") [Ⓣ][1]
+_.mixin([object=lodash], source, [options={}], [options.chain=true])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15188 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.mixin "See the npm package") [Ⓣ][1]
Adds all own enumerable string keyed function properties of a source
object to the destination object. If `object` is a function, then methods
@@ -10315,8 +10333,8 @@ _('fred').vowels();
-### `_.noConflict()`
-[#](#_noconflict) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15236 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.noconflict "See the npm package") [Ⓣ][1]
+_.noConflict()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15237 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.noconflict "See the npm package") [Ⓣ][1]
Reverts the `_` variable to its previous value and returns a reference to
the `lodash` function.
@@ -10336,8 +10354,8 @@ var lodash = _.noConflict();
-### `_.noop()`
-[#](#_noop) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15255 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.noop "See the npm package") [Ⓣ][1]
+_.noop()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15256 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.noop "See the npm package") [Ⓣ][1]
This method returns `undefined`.
@@ -10354,8 +10372,8 @@ _.times(2, _.noop);
-### `_.nthArg([n=0])`
-[#](#_nthargn0) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15279 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ntharg "See the npm package") [Ⓣ][1]
+_.nthArg([n=0])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15280 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.ntharg "See the npm package") [Ⓣ][1]
Creates a function that gets the argument at index `n`. If `n` is negative,
the nth argument from the end is returned.
@@ -10384,8 +10402,8 @@ func('a', 'b', 'c', 'd');
-### `_.over([iteratees=[_.identity]])`
-[#](#_overiteratees_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15304 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.over "See the npm package") [Ⓣ][1]
+_.over([iteratees=[_.identity]])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15305 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.over "See the npm package") [Ⓣ][1]
Creates a function that invokes `iteratees` with the arguments it receives
and returns their results.
@@ -10411,8 +10429,8 @@ func(1, 2, 3, 4);
-### `_.overEvery([predicates=[_.identity]])`
-[#](#_overeverypredicates_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15330 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.overevery "See the npm package") [Ⓣ][1]
+_.overEvery([predicates=[_.identity]])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15331 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.overevery "See the npm package") [Ⓣ][1]
Creates a function that checks if **all** of the `predicates` return
truthy when invoked with the arguments it receives.
@@ -10444,8 +10462,8 @@ func(NaN);
-### `_.overSome([predicates=[_.identity]])`
-[#](#_oversomepredicates_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15356 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.oversome "See the npm package") [Ⓣ][1]
+_.overSome([predicates=[_.identity]])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15357 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.oversome "See the npm package") [Ⓣ][1]
Creates a function that checks if **any** of the `predicates` return
truthy when invoked with the arguments it receives.
@@ -10477,8 +10495,8 @@ func(NaN);
-### `_.property(path)`
-[#](#_propertypath) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15380 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.property "See the npm package") [Ⓣ][1]
+_.property(path)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15381 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.property "See the npm package") [Ⓣ][1]
Creates a function that returns the value at `path` of a given object.
@@ -10509,8 +10527,8 @@ _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
-### `_.propertyOf(object)`
-[#](#_propertyofobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15405 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.propertyof "See the npm package") [Ⓣ][1]
+_.propertyOf(object)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15406 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.propertyof "See the npm package") [Ⓣ][1]
The opposite of `_.property`; this method creates a function that returns
the value at a given path of `object`.
@@ -10540,8 +10558,8 @@ _.map([['a', '2'], ['c', '0']], _.propertyOf(object));
-### `_.range([start=0], end, [step=1])`
-[#](#_rangestart0-end-step1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15452 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.range "See the npm package") [Ⓣ][1]
+_.range([start=0], end, [step=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15453 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.range "See the npm package") [Ⓣ][1]
Creates an array of numbers *(positive and/or negative)* progressing from
`start` up to, but not including, `end`. A step of `-1` is used if a negative
@@ -10591,8 +10609,8 @@ _.range(0);
-### `_.rangeRight([start=0], end, [step=1])`
-[#](#_rangerightstart0-end-step1) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15490 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rangeright "See the npm package") [Ⓣ][1]
+_.rangeRight([start=0], end, [step=1])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15491 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.rangeright "See the npm package") [Ⓣ][1]
This method is like `_.range` except that it populates values in
descending order.
@@ -10636,8 +10654,8 @@ _.rangeRight(0);
-### `_.runInContext([context=root])`
-[#](#_runincontextcontextroot) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L1280 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.runincontext "See the npm package") [Ⓣ][1]
+_.runInContext([context=root])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L1280 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.runincontext "See the npm package") [Ⓣ][1]
Create a new pristine `lodash` function using the `context` object.
@@ -10682,8 +10700,8 @@ var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
-### `_.stubArray()`
-[#](#_stubarray) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15510 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubarray "See the npm package") [Ⓣ][1]
+_.stubArray()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15511 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubarray "See the npm package") [Ⓣ][1]
This method returns a new empty array.
@@ -10708,8 +10726,8 @@ console.log(arrays[0] === arrays[1]);
-### `_.stubFalse()`
-[#](#_stubfalse) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15527 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubfalse "See the npm package") [Ⓣ][1]
+_.stubFalse()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15528 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubfalse "See the npm package") [Ⓣ][1]
This method returns `false`.
@@ -10729,8 +10747,8 @@ _.times(2, _.stubFalse);
-### `_.stubObject()`
-[#](#_stubobject) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15549 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubobject "See the npm package") [Ⓣ][1]
+_.stubObject()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15550 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubobject "See the npm package") [Ⓣ][1]
This method returns a new empty object.
@@ -10755,8 +10773,8 @@ console.log(objects[0] === objects[1]);
-### `_.stubString()`
-[#](#_stubstring) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15566 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubstring "See the npm package") [Ⓣ][1]
+_.stubString()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15567 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubstring "See the npm package") [Ⓣ][1]
This method returns an empty string.
@@ -10776,8 +10794,8 @@ _.times(2, _.stubString);
-### `_.stubTrue()`
-[#](#_stubtrue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15583 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubtrue "See the npm package") [Ⓣ][1]
+_.stubTrue()
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15584 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.stubtrue "See the npm package") [Ⓣ][1]
This method returns `true`.
@@ -10797,8 +10815,8 @@ _.times(2, _.stubTrue);
-### `_.times(n, [iteratee=_.identity])`
-[#](#_timesn-iteratee_identity) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15606 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.times "See the npm package") [Ⓣ][1]
+_.times(n, [iteratee=_.identity])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15607 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.times "See the npm package") [Ⓣ][1]
Invokes the iteratee `n` times, returning an array of the results of
each invocation. The iteratee is invoked with one argument; *(index)*.
@@ -10826,8 +10844,8 @@ _.times(3, String);
-### `_.toPath(value)`
-[#](#_topathvalue) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15641 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topath "See the npm package") [Ⓣ][1]
+_.toPath(value)
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15642 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.topath "See the npm package") [Ⓣ][1]
Converts `value` to a property path array.
@@ -10853,8 +10871,8 @@ _.toPath('a[0].b.c');
-### `_.uniqueId([prefix=''])`
-[#](#_uniqueidprefix) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L15665 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqueid "See the npm package") [Ⓣ][1]
+_.uniqueId([prefix=''])
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L15666 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.uniqueid "See the npm package") [Ⓣ][1]
Generates a unique ID. If `prefix` is given, the ID is appended to it.
@@ -10886,8 +10904,8 @@ _.uniqueId();
-### `_.VERSION`
-[#](#_version) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L16356 "View in source") [Ⓣ][1]
+_.VERSION
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L16357 "View in source") [Ⓣ][1]
(string): The semantic version number.
@@ -10897,8 +10915,8 @@ _.uniqueId();
-### `_.templateSettings`
-[#](#_templatesettings) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L1567 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.templatesettings "See the npm package") [Ⓣ][1]
+_.templateSettings
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L1565 "View in source") [Ⓝ](https://www.npmjs.com/package/lodash.templatesettings "See the npm package") [Ⓣ][1]
(Object): By default, the template delimiters used by lodash are like those in
embedded Ruby *(ERB)*. Change the following template settings to use
@@ -10910,8 +10928,8 @@ alternative delimiters.
-### `_.templateSettings.escape`
-[#](#_templatesettingsescape) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L1575 "View in source") [Ⓣ][1]
+_.templateSettings.escape
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L1573 "View in source") [Ⓣ][1]
(RegExp): Used to detect `data` property values to be HTML-escaped.
@@ -10921,8 +10939,8 @@ alternative delimiters.
-### `_.templateSettings.evaluate`
-[#](#_templatesettingsevaluate) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L1583 "View in source") [Ⓣ][1]
+_.templateSettings.evaluate
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L1581 "View in source") [Ⓣ][1]
(RegExp): Used to detect code to be evaluated.
@@ -10932,8 +10950,8 @@ alternative delimiters.
-### `_.templateSettings.imports`
-[#](#_templatesettingsimports) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L1607 "View in source") [Ⓣ][1]
+_.templateSettings.imports
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L1605 "View in source") [Ⓣ][1]
(Object): Used to import variables into the compiled template.
@@ -10943,8 +10961,8 @@ alternative delimiters.
-### `_.templateSettings.interpolate`
-[#](#_templatesettingsinterpolate) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L1591 "View in source") [Ⓣ][1]
+_.templateSettings.interpolate
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L1589 "View in source") [Ⓣ][1]
(RegExp): Used to detect `data` property values to inject.
@@ -10954,8 +10972,8 @@ alternative delimiters.
-### `_.templateSettings.variable`
-[#](#_templatesettingsvariable) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L1599 "View in source") [Ⓣ][1]
+_.templateSettings.variable
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L1597 "View in source") [Ⓣ][1]
(string): Used to reference the data object in the template text.
@@ -10971,8 +10989,8 @@ alternative delimiters.
-### `_.templateSettings.imports._`
-[#](#_templatesettingsimports_) [Ⓢ](https://github.com/lodash/lodash/blob/4.14.1/lodash.js#L1615 "View in source") [Ⓣ][1]
+_.templateSettings.imports._
+[Ⓢ](https://github.com/lodash/lodash/blob/4.14.2/lodash.js#L1613 "View in source") [Ⓣ][1]
A reference to the `lodash` function.
diff --git a/fp/_baseConvert.js b/fp/_baseConvert.js
index d294820d8c..0def5f67cb 100644
--- a/fp/_baseConvert.js
+++ b/fp/_baseConvert.js
@@ -143,6 +143,7 @@ function baseConvert(util, name, func, options) {
'keys': util.keys,
'rearg': util.rearg,
'spread': util.spread,
+ 'toInteger': util.toInteger,
'toPath': util.toPath
};
@@ -156,6 +157,7 @@ function baseConvert(util, name, func, options) {
keys = helpers.keys,
rearg = helpers.rearg,
spread = helpers.spread,
+ toInteger = helpers.toInteger,
toPath = helpers.toPath;
var aryMethodKeys = keys(mapping.aryMethod);
@@ -209,10 +211,16 @@ function baseConvert(util, name, func, options) {
return func;
};
},
+ 'nthArg': function(nthArg) {
+ return function(n) {
+ var arity = n < 0 ? 1 : (toInteger(n) + 1);
+ return curry(nthArg(n), arity);
+ };
+ },
'rearg': function(rearg) {
return function(func, indexes) {
- var n = indexes ? indexes.length : 0;
- return curry(rearg(func, indexes), n);
+ var arity = indexes ? indexes.length : 0;
+ return curry(rearg(func, indexes), arity);
};
},
'runInContext': function(runInContext) {
diff --git a/fp/_mapping.js b/fp/_mapping.js
index cb36eedad1..dd4abcb551 100644
--- a/fp/_mapping.js
+++ b/fp/_mapping.js
@@ -73,10 +73,10 @@ exports.aryMethod = {
'1': [
'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',
'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',
- 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
- 'mergeAll', 'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest',
- 'reverse', 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd',
- 'trimStart', 'uniqueId', 'words', 'zipAll'
+ 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',
+ 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',
+ 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
+ 'uniqueId', 'words', 'zipAll'
],
'2': [
'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',
diff --git a/lib/fp/build-dist.js b/lib/fp/build-dist.js
index 6c68c99233..e4764c6d71 100644
--- a/lib/fp/build-dist.js
+++ b/lib/fp/build-dist.js
@@ -42,6 +42,7 @@ var mappingConfig = {
/**
* Creates browser builds of the FP converter and mappings at the `target` path.
*
+ * @private
* @param {string} target The output directory path.
*/
function build() {
diff --git a/lib/fp/build-doc.js b/lib/fp/build-doc.js
index ff151ecd85..6edd802a2b 100644
--- a/lib/fp/build-doc.js
+++ b/lib/fp/build-doc.js
@@ -23,6 +23,7 @@ var templateData = {
* Converts arranged argument `indexes` into a named argument string
* representation of their order.
*
+ * @private
* @param {number[]} indexes The arranged argument indexes.
* @returns {string} Returns the named argument string.
*/
@@ -37,6 +38,7 @@ function toArgOrder(indexes) {
/**
* Converts `funcNames` into a chunked list string representation.
*
+ * @private
* @param {string[]} funcNames The function names.
* @returns {string} Returns the function list string.
*/
@@ -68,6 +70,7 @@ function toFuncList(funcNames) {
/**
* Creates the FP-Guide wiki at the `target` path.
*
+ * @private
* @param {string} target The output file path.
*/
function build(target) {
diff --git a/lib/fp/build-modules.js b/lib/fp/build-modules.js
index 82b379c5e9..9578499e79 100644
--- a/lib/fp/build-modules.js
+++ b/lib/fp/build-modules.js
@@ -46,6 +46,7 @@ var ignored = [
/**
* Checks if `name` is a method alias.
*
+ * @private
* @param {string} name The name to check.
* @returns {boolean} Returns `true` if `name` is a method alias, else `false`.
*/
@@ -56,6 +57,7 @@ function isAlias(name) {
/**
* Checks if `name` is a category name.
*
+ * @private
* @param {string} name The name to check.
* @returns {boolean} Returns `true` if `name` is a category name, else `false`.
*/
@@ -66,6 +68,7 @@ function isCategory(name) {
/**
* Checks if `name` belongs to a method that's passed thru and not wrapped.
*
+ * @private
* @param {string} name The name to check.
* @returns {boolean} Returns `true` if `name` is of a pass thru method,
* else `false`.
@@ -104,6 +107,7 @@ function getTemplate(moduleName) {
/**
* Creates FP modules at the `target` path.
*
+ * @private
* @param {string} target The output directory path.
*/
function build(target) {
diff --git a/lib/fp/template/modules/_util.jst b/lib/fp/template/modules/_util.jst
index d450396fc4..f8148129eb 100644
--- a/lib/fp/template/modules/_util.jst
+++ b/lib/fp/template/modules/_util.jst
@@ -10,5 +10,6 @@ module.exports = {
'keys': require('../_baseKeys'),
'rearg': require('../rearg'),
'spread': require('../spread'),
+ 'toInteger': require('../toInteger'),
'toPath': require('../toPath')
};
diff --git a/lib/main/build-dist.js b/lib/main/build-dist.js
index b91f1474c2..137b6915ed 100644
--- a/lib/main/build-dist.js
+++ b/lib/main/build-dist.js
@@ -18,6 +18,7 @@ var baseLodash = path.join(basePath, filename),
/**
* Creates browser builds of Lodash at the `target` path.
*
+ * @private
* @param {string} target The output directory path.
*/
function build() {
diff --git a/lib/main/build-doc.js b/lib/main/build-doc.js
index 95dca8eef3..94003448bf 100644
--- a/lib/main/build-doc.js
+++ b/lib/main/build-doc.js
@@ -16,28 +16,47 @@ var pkg = require('../../package.json'),
var config = {
'base': {
- 'entryLinks': [
- '<% if (name == "templateSettings" || !/^(?:methods|properties|seq)$/i.test(category)) {' +
- 'print("[npm package](https://www.npmjs.com/package/lodash." + name.toLowerCase() + ")")' +
- '} %>'
- ],
'path': path.join(basePath, 'lodash.js'),
- 'sourceLink': '[source](${sourceHref})',
'title': 'lodash v' + version + '',
'toc': 'categories',
'url': 'https://github.com/lodash/lodash/blob/' + version + '/lodash.js'
},
'github': {
- 'hash': 'github'
+ 'style': 'github',
+ 'sublinks': [npmLink('Ⓝ', 'See the npm package')]
},
'site': {
- 'tocHref': '#docs'
+ 'entryLink': '',
+ 'sourceLink': '[source](${sourceHref})',
+ 'tocHref': '',
+ 'tocLink': '',
+ 'sublinks': [npmLink('npm package')]
}
};
+/**
+ * Composes a npm link from `text` and optional `title`.
+ *
+ * @private
+ * @param {string} text The link text.
+ * @param {string} [title] The link title.
+ * @returns {string} Returns the composed npm link.
+ */
+function npmLink(text, title) {
+ return (
+ '<% if (name == "templateSettings" || !/^(?:methods|properties|seq)$/i.test(category)) {' +
+ 'print(' +
+ '"[' + text + '](https://www.npmjs.com/package/lodash." + name.toLowerCase() + ' +
+ '"' + (title == null ? '' : ' \\"' + title + '\\"') + ')"' +
+ ');' +
+ '} %>'
+ );
+}
+
/**
* Post-process `markdown` to make adjustments.
*
+ * @private
* @param {string} markdown The markdown to process.
* @returns {string} Returns the processed markdown.
*/
@@ -51,6 +70,7 @@ function postprocess(markdown) {
/**
* Creates the documentation markdown formatted for 'github' or 'site'.
*
+ * @private
* @param {string} type The format type.
*/
function build(type) {
diff --git a/lib/main/build-modules.js b/lib/main/build-modules.js
index 284b3ae231..e9e3f365b0 100644
--- a/lib/main/build-modules.js
+++ b/lib/main/build-modules.js
@@ -21,6 +21,7 @@ var filePairs = [
/**
* Creates supplementary Lodash modules at the `target` path.
*
+ * @private
* @param {string} target The output directory path.
*/
function build(target) {
diff --git a/lib/main/build-site.js b/lib/main/build-site.js
index 70d524bbaf..37c1ab0459 100644
--- a/lib/main/build-site.js
+++ b/lib/main/build-site.js
@@ -11,9 +11,10 @@ var basePath = path.join(__dirname, '..', '..'),
readmePath = path.join(docPath, 'README.md');
function build(type) {
- // Load markdown and uncomment docdown HTML hints.
var markdown = fs
+ // Load markdown.
.readFileSync(readmePath, 'utf8')
+ // Uncomment docdown HTML hints.
.replace(/(<)!--\s*|\s*--(>)/g, '$1$2');
var $ = marky(markdown, { 'sanitize': false }),
@@ -23,21 +24,35 @@ function build(type) {
// Remove docdown horizontal rules.
$('hr').remove();
- // Remove table of contents (toc) links.
- $('a[href="#docs"]').remove();
-
// Remove marky-markdown additions.
$('[id^="user-content-"]')
.attr('class', null)
.attr('id', null);
- $(':header > a[href]').each(function() {
+ $(':header:not(h3) > a').each(function() {
var $a = $(this);
$a.replaceWith($a.html());
});
- // Append YAML front matter.
+ // Fix marky-markdown wrapping around headers.
+ $('p:empty + h3').prev().remove();
+
+ $('h3 ~ p:empty').each(function() {
+ var $p = $(this),
+ node = this.previousSibling;
+
+ while ((node = node.previousSibling) && node.name != 'h3' && node.name != 'p') {
+ $p.prepend(node.nextSibling);
+ }
+ });
+
+ $('h3 code em').parent().each(function() {
+ var $code = $(this);
+ $code.html($code.html().replace(/<\/?em>/g, '_'));
+ });
+
var html = [
+ // Append YAML front matter.
'---',
'id: docs',
'layout: docs',
@@ -45,7 +60,11 @@ function build(type) {
'version: ' + (version || null),
'---',
'',
+ // Wrap in raw tags to avoid Liquid template tag processing.
+ '{% raw %}',
_.trim($.html()),
+ '{% endraw %}',
+ ''
].join('\n');
fs.writeFile(path.join(docPath, version + '.html'), html, util.pitch);
diff --git a/lodash.js b/lodash.js
index 22e73749bd..47e584660b 100644
--- a/lodash.js
+++ b/lodash.js
@@ -12,7 +12,7 @@
var undefined;
/** Used as the semantic version number. */
- var VERSION = '4.14.1';
+ var VERSION = '4.14.2';
/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;
@@ -134,7 +134,7 @@
/**
* Used to match `RegExp`
- * [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns).
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
*/
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
reHasRegExpChar = RegExp(reRegExpChar.source);
@@ -157,7 +157,7 @@
/**
* Used to match
- * [ES template delimiters](http://ecma-international.org/ecma-262/6.0/#sec-template-literal-lexical-components).
+ * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).
*/
var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
@@ -266,9 +266,9 @@
var contextProps = [
'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',
'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',
- 'Promise', 'Reflect', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError',
- 'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',
- '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'
+ 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',
+ 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', '_', 'clearTimeout',
+ 'isFinite', 'parseInt', 'setTimeout'
];
/** Used to make template sourceURLs easier to identify. */
@@ -1129,7 +1129,7 @@
}
/**
- * Creates a function that invokes `func` with its first argument transformed.
+ * Creates a unary function that invokes `func` with its argument transformed.
*
* @private
* @param {Function} func The function to wrap.
@@ -1282,7 +1282,6 @@
/** Built-in constructor references. */
var Array = context.Array,
- Date = context.Date,
Error = context.Error,
Math = context.Math,
RegExp = context.RegExp,
@@ -1316,7 +1315,7 @@
/**
* Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
@@ -1332,29 +1331,28 @@
/** Built-in value references. */
var Buffer = moduleExports ? context.Buffer : undefined,
- Reflect = context.Reflect,
Symbol = context.Symbol,
Uint8Array = context.Uint8Array,
- enumerate = Reflect ? Reflect.enumerate : undefined,
+ getPrototype = overArg(Object.getPrototypeOf, Object),
iteratorSymbol = Symbol ? Symbol.iterator : undefined,
objectCreate = context.Object.create,
propertyIsEnumerable = objectProto.propertyIsEnumerable,
splice = arrayProto.splice,
spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
- /** Built-in method references that are mockable. */
- var clearTimeout = function(id) { return context.clearTimeout.call(root, id); },
- setTimeout = function(func, wait) { return context.setTimeout.call(root, func, wait); };
+ /** Mocked built-ins. */
+ var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,
+ ctxNow = context.Date && context.Date.now !== root.Date.now && context.Date.now,
+ ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeCeil = Math.ceil,
nativeFloor = Math.floor,
- nativeGetPrototype = Object.getPrototypeOf,
nativeGetSymbols = Object.getOwnPropertySymbols,
nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
nativeIsFinite = context.isFinite,
nativeJoin = arrayProto.join,
- nativeKeys = Object.keys,
+ nativeKeys = overArg(Object.keys, Object),
nativeMax = Math.max,
nativeMin = Math.min,
nativeParseInt = context.parseInt,
@@ -2201,6 +2199,31 @@
/*------------------------------------------------------------------------*/
+ /**
+ * Creates an array of the enumerable property names of the array-like `value`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @param {boolean} inherited Specify returning inherited property names.
+ * @returns {Array} Returns the array of property names.
+ */
+ function arrayLikeKeys(value, inherited) {
+ var result = (isArray(value) || isString(value) || isArguments(value))
+ ? baseTimes(value.length, String)
+ : [];
+
+ var length = result.length,
+ skipIndexes = !!length;
+
+ for (var key in value) {
+ if ((inherited || hasOwnProperty.call(value, key)) &&
+ !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
/**
* Used by `_.defaults` to customize its `_.assignIn` use.
*
@@ -2237,7 +2260,7 @@
/**
* Assigns `value` to `key` of `object` if the existing value is not equivalent
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons.
*
* @private
@@ -2445,14 +2468,13 @@
if (object == null) {
return !length;
}
- var index = length;
- while (index--) {
- var key = props[index],
+ object = Object(object);
+ while (length--) {
+ var key = props[length],
predicate = source[key],
value = object[key];
- if ((value === undefined &&
- !(key in Object(object))) || !predicate(value)) {
+ if ((value === undefined && !(key in object)) || !predicate(value)) {
return false;
}
}
@@ -2479,7 +2501,7 @@
* @param {Function} func The function to delay.
* @param {number} wait The number of milliseconds to delay invocation.
* @param {Array} args The arguments to provide to `func`.
- * @returns {number} Returns the timer id.
+ * @returns {number|Object} Returns the timer id or timeout object.
*/
function baseDelay(func, wait, args) {
if (typeof func != 'function') {
@@ -2824,12 +2846,7 @@
* @returns {boolean} Returns `true` if `key` exists, else `false`.
*/
function baseHas(object, key) {
- // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`,
- // that are composed entirely of index properties, return `false` for
- // `hasOwnProperty` checks of them.
- return object != null &&
- (hasOwnProperty.call(object, key) ||
- (typeof object == 'object' && key in object && getPrototype(object) === null));
+ return object != null && hasOwnProperty.call(object, key);
}
/**
@@ -3203,40 +3220,47 @@
}
/**
- * The base implementation of `_.keys` which doesn't skip the constructor
- * property of prototypes or treat sparse arrays as dense.
+ * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
*
* @private
* @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
*/
- var baseKeys = overArg(nativeKeys, Object);
+ function baseKeys(object) {
+ if (!isPrototype(object)) {
+ return nativeKeys(object);
+ }
+ var result = [];
+ for (var key in Object(object)) {
+ if (hasOwnProperty.call(object, key) && key != 'constructor') {
+ result.push(key);
+ }
+ }
+ return result;
+ }
/**
- * The base implementation of `_.keysIn` which doesn't skip the constructor
- * property of prototypes or treat sparse arrays as dense.
+ * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
*
* @private
* @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
*/
function baseKeysIn(object) {
- object = object == null ? object : Object(object);
+ if (!isObject(object)) {
+ return nativeKeysIn(object);
+ }
+ var isProto = isPrototype(object),
+ result = [];
- var result = [];
for (var key in object) {
- result.push(key);
+ if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
+ result.push(key);
+ }
}
return result;
}
- // Fallback for IE < 9 with es6-shim.
- if (enumerate && !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf')) {
- baseKeysIn = function(object) {
- return iteratorToArray(enumerate(object));
- };
- }
-
/**
* The base implementation of `_.lt` which doesn't coerce arguments.
*
@@ -3321,7 +3345,7 @@
return;
}
if (!(isArray(source) || isTypedArray(source))) {
- var props = keysIn(source);
+ var props = baseKeysIn(source);
}
arrayEach(props || source, function(srcValue, key) {
if (props) {
@@ -3688,6 +3712,9 @@
* @returns {Object} Returns `object`.
*/
function baseSet(object, path, value, customizer) {
+ if (!isObject(object)) {
+ return object;
+ }
path = isKey(path, object) ? [path] : castPath(path);
var index = -1,
@@ -3696,20 +3723,19 @@
nested = object;
while (nested != null && ++index < length) {
- var key = toKey(path[index]);
- if (isObject(nested)) {
- var newValue = value;
- if (index != lastIndex) {
- var objValue = nested[key];
- newValue = customizer ? customizer(objValue, key, nested) : undefined;
- if (newValue === undefined) {
- newValue = objValue == null
- ? (isIndex(path[index + 1]) ? [] : {})
- : objValue;
- }
+ var key = toKey(path[index]),
+ newValue = value;
+
+ if (index != lastIndex) {
+ var objValue = nested[key];
+ newValue = customizer ? customizer(objValue, key, nested) : undefined;
+ if (newValue === undefined) {
+ newValue = isObject(objValue)
+ ? objValue
+ : (isIndex(path[index + 1]) ? [] : {});
}
- assignValue(nested, key, newValue);
}
+ assignValue(nested, key, newValue);
nested = nested[key];
}
return object;
@@ -4002,7 +4028,7 @@
object = parent(object, path);
var key = toKey(last(path));
- return !(object != null && baseHas(object, key)) || delete object[key];
+ return !(object != null && hasOwnProperty.call(object, key)) || delete object[key];
}
/**
@@ -4157,6 +4183,16 @@
return (!start && end >= length) ? array : baseSlice(array, start, end);
}
+ /**
+ * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).
+ *
+ * @private
+ * @param {number|Object} id The timer id or timeout object of the timer to clear.
+ */
+ var clearTimeout = ctxClearTimeout || function(id) {
+ return root.clearTimeout(id);
+ };
+
/**
* Creates a clone of `buffer`.
*
@@ -4650,7 +4686,7 @@
function createCtor(Ctor) {
return function() {
// Use a `switch` statement to work with class constructors. See
- // http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
+ // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
// for more details.
var args = arguments;
switch (args.length) {
@@ -5338,7 +5374,7 @@
case regexpTag:
case stringTag:
// Coerce regexes to strings and treat strings, primitives and objects,
- // as equal. See http://www.ecma-international.org/ecma-262/6.0/#sec-regexp.prototype.tostring
+ // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
// for more details.
return object == (other + '');
@@ -5400,7 +5436,7 @@
var index = objLength;
while (index--) {
var key = objProps[index];
- if (!(isPartial ? key in other : baseHas(other, key))) {
+ if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
return false;
}
}
@@ -5536,19 +5572,6 @@
return arguments.length ? result(arguments[0], arguments[1]) : result;
}
- /**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a
- * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects
- * Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
- var getLength = baseProperty('length');
-
/**
* Gets the data for `map`.
*
@@ -5597,15 +5620,6 @@
return baseIsNative(value) ? value : undefined;
}
- /**
- * Gets the `[[Prototype]]` of `value`.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {null|Object} Returns the `[[Prototype]]`.
- */
- var getPrototype = overArg(nativeGetPrototype, Object);
-
/**
* Creates an array of the own enumerable symbol properties of `object`.
*
@@ -5818,23 +5832,6 @@
}
}
- /**
- * Creates an array of index keys for `object` values of arrays,
- * `arguments` objects, and strings, otherwise `null` is returned.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array|null} Returns index keys, else `null`.
- */
- function indexKeys(object) {
- var length = object ? object.length : undefined;
- if (isLength(length) &&
- (isArray(object) || isString(object) || isArguments(object))) {
- return baseTimes(length, String);
- }
- return null;
- }
-
/**
* Inserts wrapper `details` in a comment at the top of the `source` body.
*
@@ -6119,6 +6116,25 @@
return objValue;
}
+ /**
+ * This function is like
+ * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
+ * except that it includes inherited enumerable properties.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+ function nativeKeysIn(object) {
+ var result = [];
+ if (object != null) {
+ for (var key in Object(object)) {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
/**
* Gets the parent value at `path` of `object`.
*
@@ -6187,6 +6203,18 @@
};
}());
+ /**
+ * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).
+ *
+ * @private
+ * @param {Function} func The function to delay.
+ * @param {number} wait The number of milliseconds to delay invocation.
+ * @returns {number|Object} Returns the timer id or timeout object.
+ */
+ var setTimeout = ctxSetTimeout || function(func, wait) {
+ return root.setTimeout(func, wait);
+ };
+
/**
* Sets the `toString` method of `wrapper` to mimic the source of `reference`
* with wrapper details in a comment at the top of the source body.
@@ -6407,7 +6435,7 @@
/**
* Creates an array of `array` values not included in the other given arrays
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons. The order of result values is determined by the
* order they occur in the first array.
*
@@ -6910,7 +6938,7 @@
/**
* Gets the index at which the first occurrence of `value` is found in `array`
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons. If `fromIndex` is negative, it's used as the
* offset from the end of `array`.
*
@@ -6958,12 +6986,13 @@
* // => [1, 2]
*/
function initial(array) {
- return dropRight(array, 1);
+ var length = array ? array.length : 0;
+ return length ? baseSlice(array, 0, -1) : [];
}
/**
* Creates an array of unique values that are included in all given arrays
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons. The order of result values is determined by the
* order they occur in the first array.
*
@@ -7167,7 +7196,7 @@
/**
* Removes all given values from `array` using
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons.
*
* **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`
@@ -7636,7 +7665,8 @@
* // => [2, 3]
*/
function tail(array) {
- return drop(array, 1);
+ var length = array ? array.length : 0;
+ return length ? baseSlice(array, 1, length) : [];
}
/**
@@ -7793,7 +7823,7 @@
/**
* Creates an array of unique values, in order, from all given arrays using
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons.
*
* @static
@@ -7874,7 +7904,7 @@
/**
* Creates a duplicate-free version of an array, using
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons, in which only the first occurrence of each
* element is kept.
*
@@ -8019,7 +8049,7 @@
/**
* Creates an array excluding all given values using
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons.
*
* **Note:** Unlike `_.pull`, this method returns a new array.
@@ -8590,6 +8620,11 @@
* Iteration is stopped once `predicate` returns falsey. The predicate is
* invoked with three arguments: (value, index|key, collection).
*
+ * **Note:** This method returns `true` for
+ * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because
+ * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
+ * elements of empty collections.
+ *
* @static
* @memberOf _
* @since 0.1.0
@@ -8907,7 +8942,7 @@
/**
* Checks if `value` is in `collection`. If `collection` is a string, it's
* checked for a substring of `value`, otherwise
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* is used for equality comparisons. If `fromIndex` is negative, it's used as
* the offset from the end of `collection`.
*
@@ -9375,7 +9410,7 @@
return collection.size;
}
}
- return keys(collection).length;
+ return baseKeys(collection).length;
}
/**
@@ -9487,9 +9522,9 @@
* }, _.now());
* // => Logs the number of milliseconds it took for the deferred invocation.
*/
- function now() {
- return Date.now();
- }
+ var now = ctxNow || function() {
+ return root.Date.now();
+ };
/*------------------------------------------------------------------------*/
@@ -10030,7 +10065,7 @@
* **Note:** The cache is exposed as the `cache` property on the memoized
* function. Its creation may be customized by replacing the `_.memoize.Cache`
* constructor with one whose instances implement the
- * [`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object)
+ * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
* method interface of `delete`, `get`, `has`, and `set`.
*
* @static
@@ -10330,7 +10365,7 @@
/**
* Creates a function that invokes `func` with the `this` binding of the
* create function and an array of arguments much like
- * [`Function#apply`](http://www.ecma-international.org/ecma-262/6.0/#sec-function.prototype.apply).
+ * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).
*
* **Note:** This method is based on the
* [spread operator](https://mdn.io/spread_operator).
@@ -10677,7 +10712,7 @@
/**
* Performs a
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* comparison between two values to determine if they are equivalent.
*
* @static
@@ -10857,7 +10892,7 @@
* // => false
*/
function isArrayLike(value) {
- return value != null && isLength(getLength(value)) && !isFunction(value);
+ return value != null && isLength(value.length) && !isFunction(value);
}
/**
@@ -10957,8 +10992,7 @@
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a DOM element,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.
* @example
*
* _.isElement(document.body);
@@ -11016,12 +11050,14 @@
return !value.size;
}
}
+ var isProto = isPrototype(value);
for (var key in value) {
- if (hasOwnProperty.call(value, key)) {
+ if (hasOwnProperty.call(value, key) &&
+ !(isProto && key == 'constructor')) {
return false;
}
}
- return !(nonEnumShadows && keys(value).length);
+ return !(nonEnumShadows && nativeKeys(value).length);
}
/**
@@ -11040,8 +11076,7 @@
* @category Lang
* @param {*} value The value to compare.
* @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent,
- * else `false`.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
* @example
*
* var object = { 'a': 1 };
@@ -11070,8 +11105,7 @@
* @param {*} value The value to compare.
* @param {*} other The other value to compare.
* @param {Function} [customizer] The function to customize comparisons.
- * @returns {boolean} Returns `true` if the values are equivalent,
- * else `false`.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
* @example
*
* function isGreeting(value) {
@@ -11105,8 +11139,7 @@
* @since 3.0.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an error object,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is an error object, else `false`.
* @example
*
* _.isError(new Error);
@@ -11134,8 +11167,7 @@
* @since 0.1.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a finite number,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.
* @example
*
* _.isFinite(3);
@@ -11212,16 +11244,15 @@
/**
* Checks if `value` is a valid array-like length.
*
- * **Note:** This function is loosely based on
- * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ * **Note:** This method is loosely based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
* @example
*
* _.isLength(3);
@@ -11243,7 +11274,7 @@
/**
* Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
*
* @static
@@ -11322,8 +11353,12 @@
* Performs a partial deep comparison between `object` and `source` to
* determine if `object` contains equivalent property values.
*
- * **Note:** This method supports comparing the same values as `_.isEqual`
- * and is equivalent to `_.matches` when `source` is partially applied.
+ * **Note:** This method is equivalent to `_.matches` when `source` is
+ * partially applied.
+ *
+ * Partial comparisons will match empty array and empty object `source`
+ * values against any array or object value, respectively. See `_.isEqual`
+ * for a list of supported value comparisons.
*
* @static
* @memberOf _
@@ -11536,8 +11571,7 @@
* @since 0.8.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a plain object,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
* @example
*
* function Foo() {
@@ -11601,8 +11635,7 @@
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a safe integer,
- * else `false`.
+ * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.
* @example
*
* _.isSafeInteger(3);
@@ -11896,7 +11929,7 @@
* Converts `value` to an integer.
*
* **Note:** This method is loosely based on
- * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
*
* @static
* @memberOf _
@@ -11930,7 +11963,7 @@
* array-like object.
*
* **Note:** This method is based on
- * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
*
* @static
* @memberOf _
@@ -12159,13 +12192,7 @@
* // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
*/
var assignIn = createAssigner(function(object, source) {
- if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {
- copyObject(source, keysIn(source), object);
- return;
- }
- for (var key in source) {
- assignValue(object, key, source[key]);
- }
+ copyObject(source, keysIn(source), object);
});
/**
@@ -12774,7 +12801,7 @@
* Creates an array of the own enumerable property names of `object`.
*
* **Note:** Non-object values are coerced to objects. See the
- * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
+ * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
* for more details.
*
* @static
@@ -12799,23 +12826,7 @@
* // => ['0', '1']
*/
function keys(object) {
- var isProto = isPrototype(object);
- if (!(isProto || isArrayLike(object))) {
- return baseKeys(object);
- }
- var indexes = indexKeys(object),
- skipIndexes = !!indexes,
- result = indexes || [],
- length = result.length;
-
- for (var key in object) {
- if (baseHas(object, key) &&
- !(skipIndexes && (key == 'length' || isIndex(key, length))) &&
- !(isProto && key == 'constructor')) {
- result.push(key);
- }
- }
- return result;
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}
/**
@@ -12842,23 +12853,7 @@
* // => ['a', 'b', 'c'] (iteration order is not guaranteed)
*/
function keysIn(object) {
- var index = -1,
- isProto = isPrototype(object),
- props = baseKeysIn(object),
- propsLength = props.length,
- indexes = indexKeys(object),
- skipIndexes = !!indexes,
- result = indexes || [],
- length = result.length;
-
- while (++index < propsLength) {
- var key = props[index];
- if (!(skipIndexes && (key == 'length' || isIndex(key, length))) &&
- !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
- result.push(key);
- }
- }
- return result;
+ return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
}
/**
@@ -15038,8 +15033,12 @@
* object and `source`, returning `true` if the given object has equivalent
* property values, else `false`.
*
- * **Note:** The created function supports comparing the same values as
- * `_.isEqual` is equivalent to `_.isMatch` with `source` partially applied.
+ * **Note:** The created function is equivalent to `_.isMatch` with `source`
+ * partially applied.
+ *
+ * Partial comparisons will match empty array and empty object `source`
+ * values against any array or object value, respectively. See `_.isEqual`
+ * for a list of supported value comparisons.
*
* @static
* @memberOf _
@@ -15066,7 +15065,9 @@
* value at `path` of a given object to `srcValue`, returning `true` if the
* object value is equivalent, else `false`.
*
- * **Note:** This method supports comparing the same values as `_.isEqual`.
+ * **Note:** Partial comparisons will match empty array and empty object
+ * `srcValue` values against any array or object value, respectively. See
+ * `_.isEqual` for a list of supported value comparisons.
*
* @static
* @memberOf _
diff --git a/package.json b/package.json
index f315d2cd24..9ecdd4acdb 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash",
- "version": "4.14.1",
+ "version": "4.14.2",
"license": "MIT",
"private": true,
"main": "lodash.js",
@@ -13,8 +13,7 @@
"doc": "node lib/main/build-doc github && npm run test:doc",
"doc:fp": "node lib/fp/build-doc",
"doc:site": "node lib/main/build-doc site",
- "doc:sitehtml": "optional-dev-dependency marky-markdown@^7.0.2 && npm run doc:site && node lib/main/build-site",
- "prepublish": "npm run build",
+ "doc:sitehtml": "optional-dev-dependency marky-markdown@^8.0.0 && npm run doc:site && node lib/main/build-site",
"pretest": "npm run build",
"style": "npm run style:main && npm run style:fp && npm run style:perf && npm run style:test",
"style:fp": "jscs fp/*.js lib/**/*.js",
@@ -34,7 +33,7 @@
"codecov.io": "~0.1.6",
"coveralls": "^2.11.12",
"curl-amd": "~0.8.12",
- "docdown": "~0.6.1",
+ "docdown": "~0.7.1",
"dojo": "^1.11.2",
"ecstatic": "^1.4.1",
"fs-extra": "~0.30.0",
@@ -42,7 +41,8 @@
"istanbul": "0.4.4",
"jquery": "^3.1.0",
"jscs": "^3.0.7",
- "lodash": "4.13.1",
+ "lodash": "4.14.1",
+ "lodash-doc-globals": "^0.1.1",
"markdown-doctest": "^0.8.1",
"optional-dev-dependency": "^1.3.0",
"platform": "^1.3.1",
diff --git a/test/test-fp.js b/test/test-fp.js
index ce1f56f523..f06ac71c37 100644
--- a/test/test-fp.js
+++ b/test/test-fp.js
@@ -371,7 +371,7 @@
'method', 'methodOf', 'rest', 'runInContext'
];
- var exceptions = funcMethods.concat('mixin', 'template'),
+ var exceptions = funcMethods.concat('mixin', 'nthArg', 'template'),
expected = _.map(mapping.aryMethod[1], _.constant(true));
var actual = _.map(mapping.aryMethod[1], function(methodName) {
@@ -1588,6 +1588,22 @@
/*--------------------------------------------------------------------------*/
+ QUnit.module('fp.nthArg');
+
+ (function() {
+ QUnit.test('should return a curried function', function(assert) {
+ assert.expect(2);
+
+ var func = fp.nthArg(1);
+ assert.strictEqual(func(1)(2), 2);
+
+ func = fp.nthArg(-1);
+ assert.strictEqual(func(1), 1);
+ });
+ }());
+
+ /*--------------------------------------------------------------------------*/
+
QUnit.module('fp.over');
(function() {
@@ -1793,7 +1809,7 @@
assert.deepEqual(rearged('c', 'a', 'b'), ['a', 'b', 'c']);
});
- QUnit.test('should curry the rearged function', function(assert) {
+ QUnit.test('should return a curried function', function(assert) {
assert.expect(1);
var rearged = fp.rearg([1, 2, 0], fn);
diff --git a/test/test.js b/test/test.js
index c8eb4542ed..f513714fa3 100644
--- a/test/test.js
+++ b/test/test.js
@@ -332,7 +332,7 @@
}());
/** Used to detect instrumented istanbul code coverage runs. */
- var coverage = root.__coverage__ || root[lodashStable.findKey(root, function(value, key) {
+ var coverage = root.__coverage__ || root[lodashStable.find(lodashStable.keys(root), function(key) {
return /^(?:\$\$cov_\d+\$\$)$/.test(key);
})];
@@ -5785,26 +5785,6 @@
assert.deepEqual(_.filter(array, isEven), [2]);
});
-
- QUnit.test('should iterate over an object with numeric keys (test in Mobile Safari 8)', function(assert) {
- assert.expect(1);
-
- // Trigger a mobile Safari 8 JIT bug.
- // See https://github.com/lodash/lodash/issues/799.
- var counter = 0,
- object = { '1': 'foo', '8': 'bar', '50': 'baz' };
-
- lodashStable.times(1000, function(assert) {
- _.filter([], stubTrue);
- });
-
- _.filter(object, function() {
- counter++;
- return true;
- });
-
- assert.strictEqual(counter, 3);
- });
}());
/*--------------------------------------------------------------------------*/
@@ -7805,19 +7785,6 @@
}
});
- QUnit.test('`_.' + methodName + '` should work for objects with a `[[Prototype]]` of `null`', function(assert) {
- assert.expect(1);
-
- if (create) {
- var object = create(null);
- object[1] = 'a';
- assert.strictEqual(func(object, 1), true);
- }
- else {
- skipAssert(assert);
- }
- });
-
QUnit.test('`_.' + methodName + '` should check for a key over a path', function(assert) {
assert.expect(2);
@@ -10970,7 +10937,7 @@
QUnit.test('should detect methods masquerading as native', function(assert) {
assert.expect(2);
- if (_._baseEach) {
+ if (!amd && _._baseEach) {
var path = require('path'),
basePath = path.dirname(filePath),
uid = 'e0gvgyrad1jor',
@@ -11238,22 +11205,6 @@
skipAssert(assert, 7);
}
});
-
- QUnit.test('should avoid V8 bug #2291 (test in Chrome 19-20)', function(assert) {
- assert.expect(1);
-
- // Trigger a V8 JIT bug.
- // See https://code.google.com/p/v8/issues/detail?id=2291.
- var object = {};
-
- // First, have a comparison statement.
- object == object;
-
- // Then perform the check with `object`.
- _.isObject(object);
-
- assert.strictEqual(_.isObject('a'), false);
- });
}(1, 2, 3));
/*--------------------------------------------------------------------------*/
@@ -12978,16 +12929,6 @@
delete numberProto.a;
});
- QUnit.test('`_.' + methodName + '` should not coerce nullish values to objects', function(assert) {
- assert.expect(2);
-
- objectProto.a = 1;
- lodashStable.each([null, undefined], function(value) {
- assert.deepEqual(func(value), []);
- });
- delete objectProto.a;
- });
-
QUnit.test('`_.' + methodName + '` skips the `constructor` property on prototype objects', function(assert) {
assert.expect(3);
@@ -13004,6 +12945,20 @@
Fake.prototype.constructor = Fake;
assert.deepEqual(func(Fake.prototype), ['constructor']);
});
+
+ QUnit.test('`_.' + methodName + '` should return an empty array when `object` is nullish', function(assert) {
+ var values = [, null, undefined],
+ expected = lodashStable.map(values, stubArray);
+
+ var actual = lodashStable.map(values, function(value, index) {
+ objectProto.a = 1;
+ var result = index ? func(value) : func();
+ delete objectProto.a;
+ return result;
+ });
+
+ assert.deepEqual(actual, expected);
+ });
});
/*--------------------------------------------------------------------------*/
@@ -14081,14 +14036,22 @@
});
});
- QUnit.test('should return `false` if parts of `path` are missing', function(assert) {
- assert.expect(4);
+ QUnit.test('should return `false` when `object` is nullish', function(assert) {
+ assert.expect(2);
- var object = {};
+ var values = [, null, undefined],
+ expected = lodashStable.map(values, stubFalse);
- lodashStable.each(['a', 'a[1].b.c', ['a'], ['a', '1', 'b', 'c']], function(path) {
+ lodashStable.each(['constructor', ['constructor']], function(path) {
var matches = _.matchesProperty(path, 1);
- assert.strictEqual(matches(object), false);
+
+ var actual = lodashStable.map(values, function(value, index) {
+ try {
+ return index ? matches(value) : matches();
+ } catch (e) {}
+ });
+
+ assert.deepEqual(actual, expected);
});
});
@@ -14111,6 +14074,17 @@
});
});
+ QUnit.test('should return `false` if parts of `path` are missing', function(assert) {
+ assert.expect(4);
+
+ var object = {};
+
+ lodashStable.each(['a', 'a[1].b.c', ['a'], ['a', '1', 'b', 'c']], function(path) {
+ var matches = _.matchesProperty(path, 1);
+ assert.strictEqual(matches(object), false);
+ });
+ });
+
QUnit.test('should match inherited string keyed `srcValue` properties', function(assert) {
assert.expect(2);
@@ -14349,25 +14323,6 @@
delete numberProto.b;
});
- QUnit.test('should return `false` when `object` is nullish', function(assert) {
- assert.expect(2);
-
- var values = [, null, undefined],
- expected = lodashStable.map(values, stubFalse);
-
- lodashStable.each(['constructor', ['constructor']], function(path) {
- var matches = _.matchesProperty(path, 1);
-
- var actual = lodashStable.map(values, function(value, index) {
- try {
- return index ? matches(value) : matches();
- } catch (e) {}
- });
-
- assert.deepEqual(actual, expected);
- });
- });
-
QUnit.test('should return `true` when comparing a `srcValue` of empty arrays and objects', function(assert) {
assert.expect(1);
@@ -16261,11 +16216,12 @@
QUnit.test('should return an empty object when `object` is nullish', function(assert) {
assert.expect(2);
- objectProto.a = 1;
lodashStable.each([null, undefined], function(value) {
- assert.deepEqual(_.omit(value, 'valueOf'), {});
+ objectProto.a = 1;
+ var actual = _.omit(value, 'valueOf');
+ delete objectProto.a;
+ assert.deepEqual(actual, {});
});
- delete objectProto.a;
});
QUnit.test('should work with `arguments` objects as secondary arguments', function(assert) {
@@ -19865,41 +19821,15 @@
assert.deepEqual(actual, expected);
});
- QUnit.test('`_.' + methodName + '` should follow `path` over non-plain objects', function(assert) {
- assert.expect(4);
-
- var object = { 'a': '' },
- paths = ['constructor.prototype.a', ['constructor', 'prototype', 'a']];
-
- lodashStable.each(paths, function(path) {
- func(0, path, updater);
- assert.strictEqual(0..a, value);
- delete numberProto.a;
- });
-
- lodashStable.each(['a.replace.b', ['a', 'replace', 'b']], function(path) {
- func(object, path, updater);
- assert.strictEqual(stringProto.replace.b, value);
- delete stringProto.replace.b;
- });
- });
-
- QUnit.test('`_.' + methodName + '` should not error on paths over primitives in strict mode', function(assert) {
- 'use strict';
-
+ QUnit.test('`_.' + methodName + '` should overwrite primitives in the path', function(assert) {
assert.expect(2);
- lodashStable.each(['a', 'a.a.a'], function(path) {
- numberProto.a = oldValue;
- try {
- func(0, path, updater);
- assert.strictEqual(0..a, oldValue);
- } catch (e) {
- assert.ok(false, e.message);
- }
- });
+ lodashStable.each(['a.b', ['a', 'b']], function(path) {
+ var object = { 'a': '' };
- delete numberProto.a;
+ func(object, path, updater);
+ assert.deepEqual(object, { 'a': { 'b': 2 } });
+ });;
});
QUnit.test('`_.' + methodName + '` should not create an array for missing non-index property names that start with numbers', function(assert) {