lodash.pull
Advanced tools
Comparing version 4.0.1 to 4.1.0
278
index.js
/** | ||
* lodash 4.0.0 (Custom Build) <https://lodash.com/> | ||
* lodash (Custom Build) <https://lodash.com/> | ||
* Build: `lodash modularize exports="npm" -o ./` | ||
* Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/> | ||
* Copyright jQuery Foundation and other contributors <https://jquery.org/> | ||
* Released under MIT license <https://lodash.com/license> | ||
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> | ||
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors | ||
* Available under MIT license <https://lodash.com/license> | ||
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors | ||
*/ | ||
var pullAll = require('lodash.pullall'), | ||
rest = require('lodash.rest'); | ||
/** | ||
* Removes all provided values from `array` using | ||
* A faster alternative to `Function#apply`, this function invokes `func` | ||
* with the `this` binding of `thisArg` and the arguments of `args`. | ||
* | ||
* @private | ||
* @param {Function} func The function to invoke. | ||
* @param {*} thisArg The `this` binding of `func`. | ||
* @param {Array} args The arguments to invoke `func` with. | ||
* @returns {*} Returns the result of `func`. | ||
*/ | ||
function apply(func, thisArg, args) { | ||
switch (args.length) { | ||
case 0: return func.call(thisArg); | ||
case 1: return func.call(thisArg, args[0]); | ||
case 2: return func.call(thisArg, args[0], args[1]); | ||
case 3: return func.call(thisArg, args[0], args[1], args[2]); | ||
} | ||
return func.apply(thisArg, args); | ||
} | ||
/** | ||
* A specialized version of `_.map` for arrays without support for iteratee | ||
* shorthands. | ||
* | ||
* @private | ||
* @param {Array} [array] The array to iterate over. | ||
* @param {Function} iteratee The function invoked per iteration. | ||
* @returns {Array} Returns the new mapped array. | ||
*/ | ||
function arrayMap(array, iteratee) { | ||
var index = -1, | ||
length = array ? array.length : 0, | ||
result = Array(length); | ||
while (++index < length) { | ||
result[index] = iteratee(array[index], index, array); | ||
} | ||
return result; | ||
} | ||
/** | ||
* The base implementation of `_.findIndex` and `_.findLastIndex` without | ||
* support for iteratee shorthands. | ||
* | ||
* @private | ||
* @param {Array} array The array to search. | ||
* @param {Function} predicate The function invoked per iteration. | ||
* @param {number} fromIndex The index to search from. | ||
* @param {boolean} [fromRight] Specify iterating from right to left. | ||
* @returns {number} Returns the index of the matched value, else `-1`. | ||
*/ | ||
function baseFindIndex(array, predicate, fromIndex, fromRight) { | ||
var length = array.length, | ||
index = fromIndex + (fromRight ? 1 : -1); | ||
while ((fromRight ? index-- : ++index < length)) { | ||
if (predicate(array[index], index, array)) { | ||
return index; | ||
} | ||
} | ||
return -1; | ||
} | ||
/** | ||
* The base implementation of `_.indexOf` without `fromIndex` bounds checks. | ||
* | ||
* @private | ||
* @param {Array} array The array to search. | ||
* @param {*} value The value to search for. | ||
* @param {number} fromIndex The index to search from. | ||
* @returns {number} Returns the index of the matched value, else `-1`. | ||
*/ | ||
function baseIndexOf(array, value, fromIndex) { | ||
if (value !== value) { | ||
return baseFindIndex(array, baseIsNaN, fromIndex); | ||
} | ||
var index = fromIndex - 1, | ||
length = array.length; | ||
while (++index < length) { | ||
if (array[index] === value) { | ||
return index; | ||
} | ||
} | ||
return -1; | ||
} | ||
/** | ||
* This function is like `baseIndexOf` except that it accepts a comparator. | ||
* | ||
* @private | ||
* @param {Array} array The array to search. | ||
* @param {*} value The value to search for. | ||
* @param {number} fromIndex The index to search from. | ||
* @param {Function} comparator The comparator invoked per element. | ||
* @returns {number} Returns the index of the matched value, else `-1`. | ||
*/ | ||
function baseIndexOfWith(array, value, fromIndex, comparator) { | ||
var index = fromIndex - 1, | ||
length = array.length; | ||
while (++index < length) { | ||
if (comparator(array[index], value)) { | ||
return index; | ||
} | ||
} | ||
return -1; | ||
} | ||
/** | ||
* The base implementation of `_.isNaN` without support for number objects. | ||
* | ||
* @private | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. | ||
*/ | ||
function baseIsNaN(value) { | ||
return value !== value; | ||
} | ||
/** | ||
* The base implementation of `_.unary` without support for storing metadata. | ||
* | ||
* @private | ||
* @param {Function} func The function to cap arguments for. | ||
* @returns {Function} Returns the new capped function. | ||
*/ | ||
function baseUnary(func) { | ||
return function(value) { | ||
return func(value); | ||
}; | ||
} | ||
/** Used for built-in method references. */ | ||
var arrayProto = Array.prototype; | ||
/** Built-in value references. */ | ||
var splice = arrayProto.splice; | ||
/* Built-in method references for those with the same name as other `lodash` methods. */ | ||
var nativeMax = Math.max; | ||
/** | ||
* The base implementation of `_.pullAllBy` without support for iteratee | ||
* shorthands. | ||
* | ||
* @private | ||
* @param {Array} array The array to modify. | ||
* @param {Array} values The values to remove. | ||
* @param {Function} [iteratee] The iteratee invoked per element. | ||
* @param {Function} [comparator] The comparator invoked per element. | ||
* @returns {Array} Returns `array`. | ||
*/ | ||
function basePullAll(array, values, iteratee, comparator) { | ||
var indexOf = comparator ? baseIndexOfWith : baseIndexOf, | ||
index = -1, | ||
length = values.length, | ||
seen = array; | ||
if (array === values) { | ||
values = copyArray(values); | ||
} | ||
if (iteratee) { | ||
seen = arrayMap(array, baseUnary(iteratee)); | ||
} | ||
while (++index < length) { | ||
var fromIndex = 0, | ||
value = values[index], | ||
computed = iteratee ? iteratee(value) : value; | ||
while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { | ||
if (seen !== array) { | ||
splice.call(seen, fromIndex, 1); | ||
} | ||
splice.call(array, fromIndex, 1); | ||
} | ||
} | ||
return array; | ||
} | ||
/** | ||
* The base implementation of `_.rest` which doesn't validate or coerce arguments. | ||
* | ||
* @private | ||
* @param {Function} func The function to apply a rest parameter to. | ||
* @param {number} [start=func.length-1] The start position of the rest parameter. | ||
* @returns {Function} Returns the new function. | ||
*/ | ||
function baseRest(func, start) { | ||
start = nativeMax(start === undefined ? (func.length - 1) : start, 0); | ||
return function() { | ||
var args = arguments, | ||
index = -1, | ||
length = nativeMax(args.length - start, 0), | ||
array = Array(length); | ||
while (++index < length) { | ||
array[index] = args[start + index]; | ||
} | ||
index = -1; | ||
var otherArgs = Array(start + 1); | ||
while (++index < start) { | ||
otherArgs[index] = args[index]; | ||
} | ||
otherArgs[start] = array; | ||
return apply(func, this, otherArgs); | ||
}; | ||
} | ||
/** | ||
* Copies the values of `source` to `array`. | ||
* | ||
* @private | ||
* @param {Array} source The array to copy values from. | ||
* @param {Array} [array=[]] The array to copy values to. | ||
* @returns {Array} Returns `array`. | ||
*/ | ||
function copyArray(source, array) { | ||
var index = -1, | ||
length = source.length; | ||
array || (array = Array(length)); | ||
while (++index < length) { | ||
array[index] = source[index]; | ||
} | ||
return array; | ||
} | ||
/** | ||
* Removes all given values from `array` using | ||
* [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) | ||
* for equality comparisons. | ||
* | ||
* **Note:** Unlike `_.without`, this method mutates `array`. | ||
* **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` | ||
* to remove elements from an array by predicate. | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @since 2.0.0 | ||
* @category Array | ||
@@ -27,10 +255,36 @@ * @param {Array} array The array to modify. | ||
* | ||
* var array = [1, 2, 3, 1, 2, 3]; | ||
* var array = ['a', 'b', 'c', 'a', 'b', 'c']; | ||
* | ||
* _.pull(array, 2, 3); | ||
* _.pull(array, 'a', 'c'); | ||
* console.log(array); | ||
* // => [1, 1] | ||
* // => ['b', 'b'] | ||
*/ | ||
var pull = rest(pullAll); | ||
var pull = baseRest(pullAll); | ||
/** | ||
* This method is like `_.pull` except that it accepts an array of values to remove. | ||
* | ||
* **Note:** Unlike `_.difference`, this method mutates `array`. | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @since 4.0.0 | ||
* @category Array | ||
* @param {Array} array The array to modify. | ||
* @param {Array} values The values to remove. | ||
* @returns {Array} Returns `array`. | ||
* @example | ||
* | ||
* var array = ['a', 'b', 'c', 'a', 'b', 'c']; | ||
* | ||
* _.pullAll(array, ['a', 'c']); | ||
* console.log(array); | ||
* // => ['b', 'b'] | ||
*/ | ||
function pullAll(array, values) { | ||
return (array && array.length && values && values.length) | ||
? basePullAll(array, values) | ||
: array; | ||
} | ||
module.exports = pull; |
{ | ||
"name": "lodash.pull", | ||
"version": "4.0.1", | ||
"version": "4.1.0", | ||
"description": "The lodash method `_.pull` exported as a module.", | ||
@@ -8,15 +8,11 @@ "homepage": "https://lodash.com/", | ||
"license": "MIT", | ||
"keywords": "lodash, lodash-modularized, stdlib, util, pull", | ||
"keywords": "lodash-modularized, pull", | ||
"author": "John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)", | ||
"contributors": [ | ||
"John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)", | ||
"Blaine Bublitz <blaine@iceddev.com> (https://github.com/phated)", | ||
"Blaine Bublitz <blaine.bublitz@gmail.com> (https://github.com/phated)", | ||
"Mathias Bynens <mathias@qiwi.be> (https://mathiasbynens.be/)" | ||
], | ||
"repository": "lodash/lodash", | ||
"scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }, | ||
"dependencies": { | ||
"lodash.pullall": "^4.0.0", | ||
"lodash.rest": "^4.0.0" | ||
} | ||
"scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } | ||
} |
@@ -1,2 +0,2 @@ | ||
# lodash.pull v4.0.1 | ||
# lodash.pull v4.1.0 | ||
@@ -18,2 +18,2 @@ The [lodash](https://lodash.com/) method `_.pull` exported as a [Node.js](https://nodejs.org/) module. | ||
See the [documentation](https://lodash.com/docs#pull) or [package source](https://github.com/lodash/lodash/blob/4.0.1-npm-packages/lodash.pull) for more details. | ||
See the [documentation](https://lodash.com/docs#pull) or [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash.pull) for more details. |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
11196
0
265
1
1
- Removedlodash.pullall@^4.0.0
- Removedlodash.rest@^4.0.0
- Removedlodash.pullall@4.2.0(transitive)
- Removedlodash.rest@4.0.5(transitive)